Redesign Archiving
Change archiving so that it will now work with a master main
This commit is contained in:
parent
ae0d3db59c
commit
3d37a31072
@ -12,15 +12,15 @@ namespace TeamHobby.HobbyProjectGenerator.Archive
|
|||||||
{
|
{
|
||||||
public class SQLSource : IDataSource, IRelationArchivable
|
public class SQLSource : IDataSource, IRelationArchivable
|
||||||
{
|
{
|
||||||
private SqlConnection conn;
|
//private SqlConnection conn;
|
||||||
|
|
||||||
public SQLSource(string info)
|
//public SQLSource(string info)
|
||||||
{
|
//{
|
||||||
// Do I put using here to make sure the connection closed once the object is gone?
|
// // Do I put using here to make sure the connection closed once the object is gone?
|
||||||
conn = new SqlConnection(info);
|
// conn = new SqlConnection(info);
|
||||||
// Perhaps open the connection here?
|
// // Perhaps open the connection here?
|
||||||
// conn.Open();
|
// // conn.Open();
|
||||||
}
|
//}
|
||||||
|
|
||||||
// The also Identical to update data, maybe only one method is enough
|
// The also Identical to update data, maybe only one method is enough
|
||||||
public bool DeleteData(string cmd)
|
public bool DeleteData(string cmd)
|
||||||
@ -33,22 +33,23 @@ namespace TeamHobby.HobbyProjectGenerator.Archive
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
conn.Open();
|
//conn.Open();
|
||||||
//SqlCommand command = new SqlCommand(null, conn);
|
//SqlCommand command = new SqlCommand(null, conn);
|
||||||
SqlCommand command = new SqlCommand(cmd, conn);
|
//SqlCommand command = new SqlCommand(cmd, conn);
|
||||||
|
|
||||||
// conn.Execute();
|
// conn.Execute();
|
||||||
Console.WriteLine("Access a SQL database");
|
Console.WriteLine("Access a SQL database");
|
||||||
Console.WriteLine("Select * from archive");
|
Console.WriteLine("Select * from archive");
|
||||||
|
|
||||||
// Execute the command to query the data
|
// Execute the command to query the data
|
||||||
using SqlDataReader sqlReader = command.ExecuteReader();
|
//using SqlDataReader sqlReader = command.ExecuteReader();
|
||||||
|
|
||||||
// while (myReader)
|
// while (myReader)
|
||||||
// Print to console
|
// Print to console
|
||||||
conn.Close();
|
//conn.Close();
|
||||||
conn.Dispose();
|
//conn.Dispose();
|
||||||
return sqlReader;
|
//return sqlReader;
|
||||||
|
return new SqlConnection();
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
@ -62,16 +63,16 @@ namespace TeamHobby.HobbyProjectGenerator.Archive
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
conn.Open();
|
//conn.Open();
|
||||||
|
|
||||||
// Create the SQL command object
|
// Create the SQL command object
|
||||||
SqlCommand command = new SqlCommand(cmd, conn);
|
//SqlCommand command = new SqlCommand(cmd, conn);
|
||||||
|
|
||||||
// Execute the command to change the rows in a table
|
// Execute the command to change the rows in a table
|
||||||
command.ExecuteNonQuery();
|
//command.ExecuteNonQuery();
|
||||||
|
|
||||||
conn.Close();
|
//conn.Close();
|
||||||
conn.Dispose();
|
//conn.Dispose();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
@ -124,28 +125,28 @@ namespace TeamHobby.HobbyProjectGenerator.Archive
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public Object ReadPreparedStmt(string table){
|
//public Object ReadPreparedStmt(string table){
|
||||||
conn.Open();
|
// //conn.Open();
|
||||||
//SqlCommand command = new SqlCommand(null, conn);
|
// //SqlCommand command = new SqlCommand(null, conn);
|
||||||
SqlCommand command = new SqlCommand("SELECT * from @table;", conn);
|
// SqlCommand command = new SqlCommand("SELECT * from @table;", conn);
|
||||||
SqlParameter tableParam = new SqlParameter("@table", System.Data.SqlDbType.Text, 50);
|
// SqlParameter tableParam = new SqlParameter("@table", System.Data.SqlDbType.Text, 50);
|
||||||
|
|
||||||
tableParam.Value = table;
|
// tableParam.Value = table;
|
||||||
command.Parameters.Add(tableParam);
|
// command.Parameters.Add(tableParam);
|
||||||
|
|
||||||
// conn.Execute();
|
// // conn.Execute();
|
||||||
Console.WriteLine("Access a SQL database");
|
// Console.WriteLine("Access a SQL database");
|
||||||
Console.WriteLine("Select * from archive");
|
// Console.WriteLine("Select * from archive");
|
||||||
|
|
||||||
// Make the Prepare statement and excute the query:
|
// // Make the Prepare statement and excute the query:
|
||||||
command.Prepare();
|
// command.Prepare();
|
||||||
SqlDataReader sqlReader = command.ExecuteReader();
|
// SqlDataReader sqlReader = command.ExecuteReader();
|
||||||
|
|
||||||
// while (myReader)
|
// // while (myReader)
|
||||||
// Print to console
|
// // Print to console
|
||||||
// conn.close();
|
// // conn.close();
|
||||||
return sqlReader;
|
// return sqlReader;
|
||||||
}
|
//}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Binary file not shown.
12
Source Code/TeamHobby.Main/text.cs
Normal file
12
Source Code/TeamHobby.Main/text.cs
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace TeamHobby.Main
|
||||||
|
{
|
||||||
|
internal class text
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
BIN
doc/LowLevel/ArchivingWithSingleton.pdf
Normal file
BIN
doc/LowLevel/ArchivingWithSingleton.pdf
Normal file
Binary file not shown.
99
doc/LowLevel/ArchvingMasterCon.txt
Normal file
99
doc/LowLevel/ArchvingMasterCon.txt
Normal file
@ -0,0 +1,99 @@
|
|||||||
|
|
||||||
|
title Use Case: Archiving
|
||||||
|
|
||||||
|
participant Controller.cs #90EE90
|
||||||
|
participant RDSFactory #26abff
|
||||||
|
participant ArchiveManager #ffffe0
|
||||||
|
participant SqlDAO #D3D3D3
|
||||||
|
participant MariaDB
|
||||||
|
|
||||||
|
activate Controller.cs
|
||||||
|
// Create a new factory
|
||||||
|
Controller.cs->RDSFactory:factory = new RDSFactory()
|
||||||
|
activate RDSFactory #26abff
|
||||||
|
RDSFactory->RDSFactory:Constructor()
|
||||||
|
Controller.cs<--RDSFactory:return RDSFactory
|
||||||
|
deactivate RDSFactory
|
||||||
|
Controller.cs->SqlDAO: ++IDataSource factory.GetDataSource(string name, string connInfo)++
|
||||||
|
activate SqlDAO #D3D3D3
|
||||||
|
SqlDAO->SqlDAO:++Constructor(string connInfo)++
|
||||||
|
Controller.cs<--SqlDAO: ++return SqlDAO++
|
||||||
|
deactivate SqlDAO
|
||||||
|
|
||||||
|
// Create Archive Manager
|
||||||
|
activate ArchiveManager
|
||||||
|
Controller.cs ->ArchiveManager:new ArchiveManager(IDataSource conn)
|
||||||
|
ArchiveManager ->ArchiveManager: ArchiveManager(IDatasSource conn)
|
||||||
|
|
||||||
|
// Calling the main:
|
||||||
|
ArchiveManager -->Controller.cs: return ArchiveManager
|
||||||
|
Controller.cs ->ArchiveManager: bool ArchiveManager.Controller( )
|
||||||
|
|
||||||
|
// Keep looping
|
||||||
|
|
||||||
|
loop #lightblue while true
|
||||||
|
alt #lightgreen The First Day of the month at 00:00:00 AM
|
||||||
|
// Check if the directory exist or not
|
||||||
|
alt #lightgreen Archive folder does not exist already in the current directory
|
||||||
|
ArchiveManager -> ArchiveManager:int CreateArchiveFolder(string path)
|
||||||
|
|
||||||
|
end
|
||||||
|
// Create the file name
|
||||||
|
ArchiveManager ->ArchiveManager: string filePath = string CreateFileName( )
|
||||||
|
ArchiveManager ->SqlDAO:bool Compress(string filePath)
|
||||||
|
|
||||||
|
activate SqlDAO
|
||||||
|
activate MariaDB
|
||||||
|
SqlDAO ->MariaDB: bool CopyToArchive(string filePath)
|
||||||
|
alt #red No error when doing executing copy SQL command
|
||||||
|
MariaDB --> SqlDAO: return True
|
||||||
|
|
||||||
|
else #red Error occur when executing copy SQL command on Database
|
||||||
|
MariaDB -->SqlDAO: throw SQLException
|
||||||
|
deactivate MariaDB
|
||||||
|
SqlDAO -->ArchiveManager: throw SqlException
|
||||||
|
deactivate SqlDAO
|
||||||
|
|
||||||
|
ArchiveManager ->ArchiveManager: Catch SqlException
|
||||||
|
end
|
||||||
|
|
||||||
|
activate SqlDAO
|
||||||
|
// Compress the file
|
||||||
|
SqlDAO ->SqlDAO: bool CompressArchive(string filePath)
|
||||||
|
// Remove output file
|
||||||
|
SqlDAO ->SqlDAO:bool RemoveOutputFile(string filePath)
|
||||||
|
alt #red File was created succesffuly
|
||||||
|
SqlDAO -->SqlDAO: new file
|
||||||
|
else File Exception
|
||||||
|
SqlDAO ->SqlDAO: Catch FileException
|
||||||
|
SqlDAO -->ArchiveManager: throw FileException
|
||||||
|
deactivate SqlDAO
|
||||||
|
ArchiveManager ->ArchiveManager: catch FileException
|
||||||
|
end
|
||||||
|
|
||||||
|
activate SqlDAO
|
||||||
|
|
||||||
|
SqlDAO ->MariaDB: bool RemoveEntries( )
|
||||||
|
activate MariaDB
|
||||||
|
alt #red No error when doing executing remove old logs SQL command
|
||||||
|
MariaDB-->SqlDAO:return True
|
||||||
|
|
||||||
|
|
||||||
|
else Error occur when executing removing SQL command on Database
|
||||||
|
MariaDB -->SqlDAO: throw SQLException
|
||||||
|
deactivate MariaDB
|
||||||
|
SqlDAO-->ArchiveManager: throw SQLException
|
||||||
|
deactivate SqlDAO
|
||||||
|
ArchiveManager ->ArchiveManager:Catch SqlException
|
||||||
|
end
|
||||||
|
activate SqlDAO
|
||||||
|
SqlDAO-->ArchiveManager:return True
|
||||||
|
deactivate SqlDAO
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
deactivate MariaDB
|
||||||
|
|
||||||
|
end
|
||||||
|
deactivate ArchiveManager
|
||||||
|
deactivate SqlDAO
|
||||||
BIN
doc/LowLevel/UMLforArchving.png
Normal file
BIN
doc/LowLevel/UMLforArchving.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 25 KiB |
BIN
doc/LowLevel/arcvhingMasterCon.pdf
Normal file
BIN
doc/LowLevel/arcvhingMasterCon.pdf
Normal file
Binary file not shown.
Loading…
Reference in New Issue
Block a user