Merge branch 'Long_archivePos'
This commit is contained in:
commit
01711fe223
@ -1,39 +0,0 @@
|
|||||||
|
|
||||||
using TeamHobby.HobbyProjectGenerator.DataAccess;
|
|
||||||
|
|
||||||
namespace TeamHobby.HobbyProjectGenerator.Archive
|
|
||||||
{
|
|
||||||
public class ArchiveController
|
|
||||||
{
|
|
||||||
private IDataSource<string> _conn;
|
|
||||||
|
|
||||||
// Constructor to take in the connection.
|
|
||||||
public ArchiveController(IDataSource<string> dataSource) {
|
|
||||||
_conn = dataSource;
|
|
||||||
}
|
|
||||||
|
|
||||||
public IDataSource<string> GetDataSource(){
|
|
||||||
return _conn;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Create the folder where the compress file will be stored
|
|
||||||
public bool CreateArchiveFolder(){
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Return the name of the new output file with Path
|
|
||||||
public string CreateOutFileName(){
|
|
||||||
return "hello";
|
|
||||||
}
|
|
||||||
|
|
||||||
// put everything toget here
|
|
||||||
public bool Controller(){
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -0,0 +1,161 @@
|
|||||||
|
|
||||||
|
using TeamHobby.HobbyProjectGenerator.DataAccess;
|
||||||
|
|
||||||
|
namespace TeamHobby.HobbyProjectGenerator.Archive
|
||||||
|
{
|
||||||
|
public class ArchiveManager
|
||||||
|
{
|
||||||
|
private IDataSource<string> _conn;
|
||||||
|
|
||||||
|
// Constructor to take in the connection.
|
||||||
|
public ArchiveManager(IDataSource<string> dataSource) {
|
||||||
|
_conn = dataSource;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Create the folder where the compress file will be stored
|
||||||
|
public bool CreateArchiveFolder(){
|
||||||
|
//string curPath = Directory.GetCurrentDirectory();
|
||||||
|
string curPath = @"C:\";
|
||||||
|
string folderName = "\\HobbyArchive";
|
||||||
|
|
||||||
|
// Find the root drive of the program
|
||||||
|
string drive = Path.GetPathRoot(path: curPath);
|
||||||
|
// Check if Drive exists or not
|
||||||
|
if (!Directory.Exists(drive))
|
||||||
|
{
|
||||||
|
Console.WriteLine("Drive {0} not found", drive);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
string archiveFolder = curPath + folderName;
|
||||||
|
//Console.WriteLine("Creating a new folder at: {0}", archiveFolder);
|
||||||
|
if (!Directory.Exists(archiveFolder))
|
||||||
|
{
|
||||||
|
Console.WriteLine("Creating a new folder at: {0}", archiveFolder);
|
||||||
|
Directory.CreateDirectory(archiveFolder);
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Return the name of the new output file with Path
|
||||||
|
public string CreateOutFileName() {
|
||||||
|
try {
|
||||||
|
// Creating a file name:
|
||||||
|
string path = @"C:\HobbyArchive";
|
||||||
|
//string path = Directory.GetCurrentDirectory() + "\\HobbyArchive";
|
||||||
|
Console.WriteLine("The current directory is {0}", path);
|
||||||
|
string date = DateTime.Now.ToString("M_d_yyyy");
|
||||||
|
string fileName = date + "_archive.csv";
|
||||||
|
string filePath = System.IO.Path.Combine(path, fileName);
|
||||||
|
|
||||||
|
Console.WriteLine("Date: {0}", date);
|
||||||
|
Console.WriteLine("Filepath: {0}", filePath);
|
||||||
|
return filePath;
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
Console.WriteLine("ArchiveCon: Creating a file name failed. ");
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Method overload to take in a specific path
|
||||||
|
public string CreateOutFileName(string archivePath)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
//string path = archivePath + "\\HobbyArchive";
|
||||||
|
Console.WriteLine("The current directory is {0}", archivePath);
|
||||||
|
//string date = DateTime.Now.ToString("M_d_yyyy_H:mm:ss");
|
||||||
|
string date = DateTime.Now.ToString("M_d_yyyy");
|
||||||
|
string fileName = date + "_archive.csv";
|
||||||
|
string filePath = Path.Combine(archivePath, fileName);
|
||||||
|
|
||||||
|
Console.WriteLine("Date: {0}", date);
|
||||||
|
Console.WriteLine("Filepath: {0}", filePath);
|
||||||
|
return filePath;
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
Console.WriteLine("ArchiveCon: Creating a file name failed. ");
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// put everything toget here
|
||||||
|
public bool Controller(){
|
||||||
|
|
||||||
|
SqlDAO sqlDS = null;
|
||||||
|
if (_conn.GetType() == typeof(SqlDAO))
|
||||||
|
{
|
||||||
|
sqlDS = (SqlDAO)_conn;
|
||||||
|
|
||||||
|
}
|
||||||
|
// TODO: Remember to add try catch block here to make sure it is completed.
|
||||||
|
|
||||||
|
//Creating the folder Archive
|
||||||
|
Console.WriteLine("Creating a new folder ...");
|
||||||
|
CreateArchiveFolder();
|
||||||
|
Console.WriteLine("Creating a new folder completed ...");
|
||||||
|
Console.WriteLine("----------------");
|
||||||
|
Console.WriteLine("");
|
||||||
|
|
||||||
|
// Creating a file name:
|
||||||
|
string filePath = @"C:\HobbyArchive";
|
||||||
|
//Console.WriteLine("Creating file name ... ");
|
||||||
|
//string curPath = archive.CreateOutFileName();
|
||||||
|
Console.WriteLine("Creating Output file name ...");
|
||||||
|
string curPath = CreateOutFileName();
|
||||||
|
Console.WriteLine("Output file name created ...");
|
||||||
|
Console.WriteLine("----------------");
|
||||||
|
Console.WriteLine("");
|
||||||
|
|
||||||
|
//string pathForward = @"C:\Users\Chunchunmaru\Documents\csulbFall2021\HobbyProject\Source Code\main\bin\Debug\net6.0\HobbyArchive";
|
||||||
|
//string pathTemp = "C:/Temp/oldlogs10.txt";
|
||||||
|
//string pathTempBack = @"C:\Temp\oldlogs10.txt";
|
||||||
|
|
||||||
|
//Output SQL to a text file
|
||||||
|
Console.WriteLine("Copying to a text file ...");
|
||||||
|
sqlDS.CopyToFile(curPath);
|
||||||
|
Console.WriteLine("Copying completed ...");
|
||||||
|
Console.WriteLine("----------------");
|
||||||
|
Console.WriteLine("");
|
||||||
|
|
||||||
|
// Compress the file
|
||||||
|
Console.WriteLine("Copressing the text file ...");
|
||||||
|
sqlDS.CompressFile(curPath);
|
||||||
|
Console.WriteLine("Copression completed ...");
|
||||||
|
Console.WriteLine("----------------");
|
||||||
|
Console.WriteLine("");
|
||||||
|
|
||||||
|
//Remove output file
|
||||||
|
Console.WriteLine("Removing the text file ...");
|
||||||
|
sqlDS.RemoveOutputFile(curPath);
|
||||||
|
Console.WriteLine("Text File removal completed ...");
|
||||||
|
Console.WriteLine("----------------");
|
||||||
|
Console.WriteLine("");
|
||||||
|
|
||||||
|
// Remove entries fromt the database
|
||||||
|
Console.WriteLine("Removing the text file ...");
|
||||||
|
sqlDS.RemoveEntries();
|
||||||
|
Console.WriteLine("Entries removal completed ...");
|
||||||
|
Console.WriteLine("----------------");
|
||||||
|
Console.WriteLine("");
|
||||||
|
|
||||||
|
// Testing date time patters
|
||||||
|
//string date = DateTime.Now.ToString("d");
|
||||||
|
//Console.WriteLine(date);
|
||||||
|
//Console.WriteLine(DateTime.Now.ToString("M_d_yyyy_H:mm:ss"));
|
||||||
|
|
||||||
|
return true;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -36,7 +36,7 @@ namespace TeamHobby.HobbyProjectGenerator.DataAccess
|
|||||||
return _conn;
|
return _conn;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Closing a connection here will cause a problem
|
// TODO: Closing a connection here will cause a problem
|
||||||
// Make sure whoever called this need to close the connection until we can fixed it.
|
// Make sure whoever called this need to close the connection until we can fixed it.
|
||||||
public Object? ReadData(string cmd)
|
public Object? ReadData(string cmd)
|
||||||
{
|
{
|
||||||
@ -175,17 +175,68 @@ namespace TeamHobby.HobbyProjectGenerator.DataAccess
|
|||||||
|
|
||||||
// Copy the Sql data to the a text file
|
// Copy the Sql data to the a text file
|
||||||
public bool CopyToFile(string filePath){
|
public bool CopyToFile(string filePath){
|
||||||
return true;
|
try
|
||||||
|
{
|
||||||
|
_conn.Open();
|
||||||
|
// Conver backward slash in to forward slash
|
||||||
|
filePath = filePath.Replace("\\", "/");
|
||||||
|
string sqlQuery = "SELECT 'LtimeStamp', 'logID', 'LvName', 'catName', 'userOP', 'logMessage' " +
|
||||||
|
"UNION ALL " +
|
||||||
|
"SELECT* FROM log " +
|
||||||
|
"WHERE DATEDIFF(CURRENT_TIMESTAMP, log.LtimeStamp) > 30 " +
|
||||||
|
"INTO OUTFILE '" + filePath + "'" +
|
||||||
|
"FIELDS ENCLOSED BY ''" +
|
||||||
|
"TERMINATED BY ',' " +
|
||||||
|
"LINES TERMINATED BY '\r\n';";
|
||||||
|
|
||||||
|
Console.WriteLine(sqlQuery);
|
||||||
|
|
||||||
|
OdbcCommand command = new OdbcCommand(sqlQuery, _conn);
|
||||||
|
//command.Parameters.AddWithValue("@filePath", filePath);
|
||||||
|
//command.Prepare();
|
||||||
|
|
||||||
|
Console.WriteLine("Output to a file started. ");
|
||||||
|
command.ExecuteNonQuery();
|
||||||
|
Console.WriteLine("Output to a file completed. ");
|
||||||
|
|
||||||
|
|
||||||
|
_conn.Close();
|
||||||
|
return true;
|
||||||
|
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
_conn.Close();
|
||||||
|
Console.WriteLine("Error when copying query to a file !!");
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
_conn.Close();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool RemoveOutputFile(string filePath){
|
public bool RemoveOutputFile(string filePath){
|
||||||
return true;
|
try
|
||||||
|
{
|
||||||
|
if (File.Exists(filePath))
|
||||||
|
{
|
||||||
|
Console.WriteLine("File at: {0} exist, proceed to remove.", filePath);
|
||||||
|
File.Delete(filePath);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
catch {
|
||||||
|
Console.WriteLine("Removing file failed!!");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Remove data from the database, if failed, let the controller handle it.
|
// Remove data from the database, if failed, let the controller handle it.
|
||||||
public bool RemoveEntries() {
|
public bool RemoveEntries() {
|
||||||
|
|
||||||
string sqlCmd = "DELETE FROM log WHERE DATE_DIFF(current_timestamp, log.LtimeStamp) > 30";
|
string sqlCmd = "DELETE FROM log WHERE DATEDIFF(current_timestamp, log.LtimeStamp) > 30";
|
||||||
|
|
||||||
try{
|
try{
|
||||||
DeleteData(sqlCmd);
|
DeleteData(sqlCmd);
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
using main;
|
using main;
|
||||||
using System;
|
using System;
|
||||||
using System.Data.Odbc;
|
using System.Data.Odbc;
|
||||||
|
using TeamHobby.HobbyProjectGenerator.Archive;
|
||||||
using TeamHobby.HobbyProjectGenerator.DataAccess;
|
using TeamHobby.HobbyProjectGenerator.DataAccess;
|
||||||
|
|
||||||
|
|
||||||
@ -63,10 +64,57 @@ namespace TeamHobby.HobbyProjectGenerator.Main
|
|||||||
Console.WriteLine("Date={0} {1} {2} {3} {4} {5}", reader[0], reader[1], reader[2], reader[3], reader[4], reader[5]);
|
Console.WriteLine("Date={0} {1} {2} {3} {4} {5}", reader[0], reader[1], reader[2], reader[3], reader[4], reader[5]);
|
||||||
}
|
}
|
||||||
SqlDAO sqlDS = (SqlDAO)datasource;
|
SqlDAO sqlDS = (SqlDAO)datasource;
|
||||||
|
Console.WriteLine("");
|
||||||
|
|
||||||
// Closing the connection
|
// Closing the connection
|
||||||
sqlDS.getConnection().Close();
|
sqlDS.getConnection().Close();
|
||||||
|
|
||||||
|
// While loop to keep this running forever with UserManagement
|
||||||
|
// Testing archive Manager
|
||||||
|
//while (true)
|
||||||
|
//{
|
||||||
|
string currentDate = DateTime.Now.ToString("dd");
|
||||||
|
string currentTime = DateTime.Now.ToString("T");
|
||||||
|
Console.WriteLine("Current date: {0}, Current Time: {1}", currentDate, currentTime);
|
||||||
|
if (String.Equals(currentDate, "1") && String.Equals(currentTime, "00:00:00 AM")){
|
||||||
|
ArchiveManager archive = new ArchiveManager(datasource);
|
||||||
|
archive.Controller();
|
||||||
|
}
|
||||||
|
//}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//Creating the folder Archive
|
||||||
|
//Console.WriteLine("Creating a new folder ...");
|
||||||
|
//archive.CreateArchiveFolder();
|
||||||
|
//Console.WriteLine("");
|
||||||
|
|
||||||
|
//// Creating a file name:
|
||||||
|
//string filePath = @"C:\HobbyArchive";
|
||||||
|
////Console.WriteLine("Creating file name ... ");
|
||||||
|
////string curPath = archive.CreateOutFileName();
|
||||||
|
//string curPath = archive.CreateOutFileName(filePath);
|
||||||
|
|
||||||
|
////string pathForward = @"C:\Users\Chunchunmaru\Documents\csulbFall2021\HobbyProject\Source Code\main\bin\Debug\net6.0\HobbyArchive";
|
||||||
|
////string pathTemp = "C:/Temp/oldlogs10.txt";
|
||||||
|
////string pathTempBack = @"C:\Temp\oldlogs10.txt";
|
||||||
|
//Console.WriteLine("----------------");
|
||||||
|
|
||||||
|
////Output SQL to a text file
|
||||||
|
//sqlDS.CopyToFile(curPath);
|
||||||
|
|
||||||
|
//// Compress the file
|
||||||
|
//sqlDS.CompressFile(curPath);
|
||||||
|
|
||||||
|
////Remove output file
|
||||||
|
//sqlDS.RemoveOutputFile(curPath);
|
||||||
|
|
||||||
|
//// Remove entries fromt the database
|
||||||
|
//sqlDS.RemoveEntries();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// 2.Inserting Data into the database:
|
// 2.Inserting Data into the database:
|
||||||
//string sqlWrite = "INSERT into log(lvname, catname, userop, logmessage) values " +
|
//string sqlWrite = "INSERT into log(lvname, catname, userop, logmessage) values " +
|
||||||
// "('Info', 'View', 'Testing DAL stuffs', 'new DAL method tested');";
|
// "('Info', 'View', 'Testing DAL stuffs', 'new DAL method tested');";
|
||||||
@ -82,9 +130,6 @@ namespace TeamHobby.HobbyProjectGenerator.Main
|
|||||||
//Console.WriteLine("Writing completed. ");
|
//Console.WriteLine("Writing completed. ");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* ExampleDAO z = new ExampleDAO();
|
/* ExampleDAO z = new ExampleDAO();
|
||||||
z.UserData("Tomato");
|
z.UserData("Tomato");
|
||||||
Console.Read();*/
|
Console.Read();*/
|
||||||
|
|||||||
@ -12,6 +12,7 @@
|
|||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<ProjectReference Include="..\TeamHobby.HobbyProjectGenerator.Archive\TeamHobby.HobbyProjectGenerator.Archive.csproj" />
|
||||||
<ProjectReference Include="..\TeamHobby.HobbyProjectGenerator.DataAccess\TeamHobby.HobbyProjectGenerator.DataAccess.csproj" />
|
<ProjectReference Include="..\TeamHobby.HobbyProjectGenerator.DataAccess\TeamHobby.HobbyProjectGenerator.DataAccess.csproj" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user