Add error handling an cleaning up for Archiving

This commit is contained in:
Alatreon 2021-12-12 16:21:02 -08:00
parent af21f771d0
commit 4a2bd5b38f
3 changed files with 79 additions and 52 deletions

View File

@ -22,18 +22,25 @@ namespace TeamHobby.HobbyProjectGenerator.Archive
// Find the root drive of the program // Find the root drive of the program
string drive = Path.GetPathRoot(path: curPath); string drive = Path.GetPathRoot(path: curPath);
// Check if Drive exists or not // Check if Drive exists or not
if (!Directory.Exists(drive)) try {
{ if (!Directory.Exists(drive))
Console.WriteLine("Drive {0} not found", drive); {
return false; Console.WriteLine("Drive {0} not found", drive);
} return false;
}
string archiveFolder = curPath + folderName; string archiveFolder = curPath + folderName;
//Console.WriteLine("Creating a new folder at: {0}", archiveFolder); //Console.WriteLine("Creating a new folder at: {0}", archiveFolder);
if (!Directory.Exists(archiveFolder)) if (!Directory.Exists(archiveFolder))
{ {
Console.WriteLine("Creating a new folder at: {0}", archiveFolder); Console.WriteLine("Creating a new folder at: {0}", archiveFolder);
Directory.CreateDirectory(archiveFolder); Directory.CreateDirectory(archiveFolder);
//return true;
}
}
catch (Exception ex){
// If the creating a folder failed, return false
return false;
} }
return true; return true;
} }
@ -91,7 +98,11 @@ namespace TeamHobby.HobbyProjectGenerator.Archive
if (_conn.GetType() == typeof(SqlDAO)) if (_conn.GetType() == typeof(SqlDAO))
{ {
sqlDS = (SqlDAO)_conn; sqlDS = (SqlDAO)_conn;
}
// Check to make sure that Sql Data source connection is not null
if (sqlDS == null){
return false;
} }
// TODO: Remember to add try catch block here to make sure it is completed. // TODO: Remember to add try catch block here to make sure it is completed.
@ -103,11 +114,11 @@ namespace TeamHobby.HobbyProjectGenerator.Archive
Console.WriteLine(""); Console.WriteLine("");
// Creating a file name: // Creating a file name:
string filePath = @"C:\HobbyArchive"; //string filePath = @"C:\HobbyArchive";
//Console.WriteLine("Creating file name ... "); //Console.WriteLine("Creating file name ... ");
//string curPath = archive.CreateOutFileName(); //string curPath = archive.CreateOutFileName();
Console.WriteLine("Creating Output file name ..."); Console.WriteLine("Creating Output file name ...");
string curPath = CreateOutFileName(); string outPath = CreateOutFileName();
Console.WriteLine("Output file name created ..."); Console.WriteLine("Output file name created ...");
Console.WriteLine("----------------"); Console.WriteLine("----------------");
Console.WriteLine(""); Console.WriteLine("");
@ -116,46 +127,63 @@ namespace TeamHobby.HobbyProjectGenerator.Archive
//string pathTemp = "C:/Temp/oldlogs10.txt"; //string pathTemp = "C:/Temp/oldlogs10.txt";
//string pathTempBack = @"C:\Temp\oldlogs10.txt"; //string pathTempBack = @"C:\Temp\oldlogs10.txt";
//Output SQL to a text file // Try catch block to delete abort the compressing process
Console.WriteLine("Copying to a text file ..."); try{
sqlDS.CopyToFile(curPath); //Output SQL to a text file
Console.WriteLine("Copying completed ..."); Console.WriteLine("Copying to a text file ...");
Console.WriteLine("----------------"); sqlDS.CopyToFile(outPath);
Console.WriteLine(""); Console.WriteLine("Copying completed ...");
Console.WriteLine("----------------");
Console.WriteLine("");
// Compress the file // Compress the file
Console.WriteLine("Copressing the text file ..."); Console.WriteLine("Copressing the text file ...");
sqlDS.CompressFile(curPath); sqlDS.CompressFile(outPath);
Console.WriteLine("Copression completed ..."); Console.WriteLine("Copression completed ...");
Console.WriteLine("----------------"); Console.WriteLine("----------------");
Console.WriteLine(""); Console.WriteLine("");
//Remove output file //Remove output file
Console.WriteLine("Removing the text file ..."); Console.WriteLine("Removing the text file ...");
sqlDS.RemoveOutputFile(curPath); sqlDS.RemoveOutputFile(outPath);
Console.WriteLine("Text File removal completed ..."); Console.WriteLine("Text File removal completed ...");
Console.WriteLine("----------------"); Console.WriteLine("----------------");
Console.WriteLine(""); Console.WriteLine("");
// Remove entries fromt the database // Remove entries fromt the database
Console.WriteLine("Removing the text file ..."); Console.WriteLine("Removing the text file ...");
sqlDS.RemoveEntries(); sqlDS.RemoveEntries();
Console.WriteLine("Entries removal completed ..."); Console.WriteLine("Entries removal completed ...");
Console.WriteLine("----------------"); Console.WriteLine("----------------");
Console.WriteLine(""); Console.WriteLine("");
// Return true if compressing sequence is successful
return true;
}
catch (Exception e){
// Abort the compressing sequence and clean up uneccesary files.
Console.WriteLine("Archiving Sequenced failed. Cleaning up resources.");
// Delete the text output file if any of the process failed
if (File.Exists(outPath)){
File.Delete(outPath);
}
// Delete the compressed file if Removing entries and removing text file output failed
string compFile = outPath + ".gz";
if (File.Exists(compFile)){
File.Delete(compFile);
}
return false;
}
// Testing date time patters // Testing date time patters
//string date = DateTime.Now.ToString("d"); //string date = DateTime.Now.ToString("d");
//Console.WriteLine(date); //Console.WriteLine(date);
//Console.WriteLine(DateTime.Now.ToString("M_d_yyyy_H:mm:ss")); //Console.WriteLine(DateTime.Now.ToString("M_d_yyyy_H:mm:ss"));
return true;
} }
} }
} }

View File

@ -149,7 +149,6 @@ namespace TeamHobby.HobbyProjectGenerator.DataAccess
// Get the stream of the original file // Get the stream of the original file
using FileStream origFile = File.Open(fileName, FileMode.Open); using FileStream origFile = File.Open(fileName, FileMode.Open);
// Get the attribute of the file // Get the attribute of the file
FileAttributes atrribute = File.GetAttributes(fileName); FileAttributes atrribute = File.GetAttributes(fileName);
@ -161,15 +160,16 @@ namespace TeamHobby.HobbyProjectGenerator.DataAccess
using GZipStream compressor = new GZipStream(outputFile, CompressionMode.Compress); using GZipStream compressor = new GZipStream(outputFile, CompressionMode.Compress);
origFile.CopyTo(compressor); origFile.CopyTo(compressor);
return true; return true;
} }
return false; return false;
} }
catch (Exception ex) catch (Exception ex)
{ {
Console.WriteLine("Error when compressing a file !!, will be handled higher up the call stack");
Console.WriteLine(ex.Message); Console.WriteLine(ex.Message);
return false; throw;
} }
} }
@ -204,10 +204,10 @@ namespace TeamHobby.HobbyProjectGenerator.DataAccess
return true; return true;
} }
catch catch (Exception ex)
{ {
_conn.Close(); _conn.Close();
Console.WriteLine("Error when copying query to a file !!"); Console.WriteLine("Error when copying query to a file !!, will be handled higher up the call stack");
throw; throw;
} }
finally finally
@ -229,7 +229,7 @@ namespace TeamHobby.HobbyProjectGenerator.DataAccess
} }
catch { catch {
Console.WriteLine("Removing file failed!!"); Console.WriteLine("Removing file failed!!");
return false; throw;
} }
} }

View File

@ -4,7 +4,6 @@ using System.Data.Odbc;
using TeamHobby.HobbyProjectGenerator.Archive; using TeamHobby.HobbyProjectGenerator.Archive;
using TeamHobby.HobbyProjectGenerator.DataAccess; using TeamHobby.HobbyProjectGenerator.DataAccess;
namespace TeamHobby.HobbyProjectGenerator.Main namespace TeamHobby.HobbyProjectGenerator.Main
{ {
public class GetCredentials public class GetCredentials