so many comments!
This commit is contained in:
parent
d206ce3bf8
commit
7ad8bfa24e
2 changed files with 36 additions and 34 deletions
|
@ -153,29 +153,33 @@ namespace Saviour_Backup_System
|
||||||
/// Create record for drive
|
/// Create record for drive
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private void createRecord() {
|
private void createRecord() {
|
||||||
SqlCeConnection conn = databaseTools.conn;
|
SqlCeConnection conn = databaseTools.conn; //Get connection object
|
||||||
SqlCeCommand cmd = conn.CreateCommand();
|
SqlCeCommand cmd = conn.CreateCommand(); //Generate command object to run SQL
|
||||||
DriveInfo drive = USBTools.getDriveObject(drivesDropdown.Text.Substring(0, 1));
|
DriveInfo drive = USBTools.getDriveObject(drivesDropdown.Text.Substring(0, 1)); //Get drive object from
|
||||||
conn.Open();
|
string driveID = USBTools.calculateDriveID(drive); //Calculate ID for drive
|
||||||
|
conn.Open(); //Open connection to database
|
||||||
statusProgress.Text = "Connection established...";
|
statusProgress.Text = "Connection established...";
|
||||||
|
|
||||||
cmd.CommandText = "INSERT INTO Drive (ID, Name, Capacity, File_System, Type) VALUES (?,?,?,?,?)";
|
cmd.CommandText = "INSERT INTO Drive (ID, Name, Capacity, File_System, Type) VALUES (?,?,?,?,?)"; //Defined SQL statement for insertion
|
||||||
|
/*Generate SQL parameters, stops injection */
|
||||||
cmd.Parameters.Add(new SqlCeParameter("Drive ID", SqlDbType.NText));
|
cmd.Parameters.Add(new SqlCeParameter("Drive ID", SqlDbType.NText));
|
||||||
cmd.Parameters.Add(new SqlCeParameter("Drive Name", SqlDbType.NText));
|
cmd.Parameters.Add(new SqlCeParameter("Drive Name", SqlDbType.NText));
|
||||||
cmd.Parameters.Add(new SqlCeParameter("Capacity", SqlDbType.BigInt));
|
cmd.Parameters.Add(new SqlCeParameter("Capacity", SqlDbType.BigInt));
|
||||||
cmd.Parameters.Add(new SqlCeParameter("File System", SqlDbType.NText));
|
cmd.Parameters.Add(new SqlCeParameter("File System", SqlDbType.NText));
|
||||||
cmd.Parameters.Add(new SqlCeParameter("Type", SqlDbType.NText));
|
cmd.Parameters.Add(new SqlCeParameter("Type", SqlDbType.NText));
|
||||||
cmd.Prepare();
|
cmd.Prepare(); //Prepare the parameters for use
|
||||||
cmd.Parameters["Drive ID"].Value = USBTools.calculateDriveID(drive);
|
/*Assign values to parameters */
|
||||||
|
cmd.Parameters["Drive ID"].Value = driveID;
|
||||||
cmd.Parameters["Drive Name"].Value = drive.VolumeLabel;
|
cmd.Parameters["Drive Name"].Value = drive.VolumeLabel;
|
||||||
cmd.Parameters["Capacity"].Value = Convert.ToInt64(drive.TotalSize);
|
cmd.Parameters["Capacity"].Value = Convert.ToInt64(drive.TotalSize);
|
||||||
cmd.Parameters["File System"].Value = drive.DriveFormat;
|
cmd.Parameters["File System"].Value = drive.DriveFormat;
|
||||||
cmd.Parameters["Type"].Value = USBTools.getDriveType(drive);
|
cmd.Parameters["Type"].Value = USBTools.getDriveType(drive);
|
||||||
cmd.ExecuteNonQuery();
|
cmd.ExecuteNonQuery(); //Execute code
|
||||||
cmd.Parameters.Clear();
|
cmd.Parameters.Clear(); //Clear teh parameters for reuse
|
||||||
statusProgress.Text = "Drive Record Created...";
|
statusProgress.Text = "Drive Record Created..."; //Display message
|
||||||
|
|
||||||
cmd.CommandText = "INSERT INTO Recordset VALUES (?, ?, ?, ?, ?, ?, ?)";
|
cmd.CommandText = "INSERT INTO Recordset VALUES (?, ?, ?, ?, ?, ?, ?)"; //Redefine SQL statement for different insertion
|
||||||
|
/* Generate SQL Paramters for use */
|
||||||
cmd.Parameters.Add(new SqlCeParameter("Name", SqlDbType.NText));
|
cmd.Parameters.Add(new SqlCeParameter("Name", SqlDbType.NText));
|
||||||
cmd.Parameters.Add(new SqlCeParameter("Drive ID", SqlDbType.NText));
|
cmd.Parameters.Add(new SqlCeParameter("Drive ID", SqlDbType.NText));
|
||||||
cmd.Parameters.Add(new SqlCeParameter("Creation Date", SqlDbType.BigInt));
|
cmd.Parameters.Add(new SqlCeParameter("Creation Date", SqlDbType.BigInt));
|
||||||
|
@ -183,19 +187,18 @@ namespace Saviour_Backup_System
|
||||||
cmd.Parameters.Add(new SqlCeParameter("Automatic", SqlDbType.Bit));
|
cmd.Parameters.Add(new SqlCeParameter("Automatic", SqlDbType.Bit));
|
||||||
cmd.Parameters.Add(new SqlCeParameter("Compression", SqlDbType.Bit));
|
cmd.Parameters.Add(new SqlCeParameter("Compression", SqlDbType.Bit));
|
||||||
cmd.Parameters.Add(new SqlCeParameter("Previous Backups", SqlDbType.Int));
|
cmd.Parameters.Add(new SqlCeParameter("Previous Backups", SqlDbType.Int));
|
||||||
cmd.Prepare();
|
cmd.Prepare(); //Prepare parameters
|
||||||
cmd.Parameters["Name"].Value = backupNameInput.Text;
|
cmd.Parameters["Name"].Value = backupNameInput.Text;
|
||||||
cmd.Parameters["Drive ID"].Value = USBTools.calculateDriveID(drive);
|
cmd.Parameters["Drive ID"].Value = driveID;
|
||||||
cmd.Parameters["Creation Date"].Value = tools.getUnixTimeStamp();
|
cmd.Parameters["Creation Date"].Value = tools.getUnixTimeStamp(); //Calulate current time
|
||||||
cmd.Parameters["Backup Location"].Value = folderPath.Text;
|
cmd.Parameters["Backup Location"].Value = folderPath.Text;
|
||||||
cmd.Parameters["Automatic"].Value = insertionSwitch.Value;
|
cmd.Parameters["Automatic"].Value = insertionSwitch.Value;
|
||||||
cmd.Parameters["Compression"].Value = compressionSwitch.Value;
|
cmd.Parameters["Compression"].Value = compressionSwitch.Value;
|
||||||
cmd.Parameters["Previous Backups"].Value = previousBackupInput.Value;
|
cmd.Parameters["Previous Backups"].Value = previousBackupInput.Value;
|
||||||
cmd.ExecuteNonQuery();
|
cmd.ExecuteNonQuery(); //Execute SQL
|
||||||
cmd.Parameters.Clear();
|
cmd.Parameters.Clear(); //Clear parameter list
|
||||||
statusProgress.Text = "Recordset created...";
|
statusProgress.Text = "Recordset created..."; //Display message
|
||||||
conn.Close();
|
conn.Close(); //Close database connection
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void insertionSwitch_Click(object sender, EventArgs e) { insertionSwitch.Value = !insertionSwitch.Value; }
|
private void insertionSwitch_Click(object sender, EventArgs e) { insertionSwitch.Value = !insertionSwitch.Value; }
|
||||||
|
|
|
@ -28,29 +28,28 @@ namespace Saviour_Backup_System
|
||||||
/// <param name="endDirectory">Directory to store files</param>
|
/// <param name="endDirectory">Directory to store files</param>
|
||||||
/// <param name="visible">Will the progress window be displayed?</param>
|
/// <param name="visible">Will the progress window be displayed?</param>
|
||||||
public void startCopy(DriveInfo drive, string endDirectory, bool visible) { //used for validation to make sure the copy wont fail.
|
public void startCopy(DriveInfo drive, string endDirectory, bool visible) { //used for validation to make sure the copy wont fail.
|
||||||
if (!Directory.Exists(drive.Name)) { MessageBox.Show("The drive directory does not exist."); }
|
if (!Directory.Exists(drive.Name)) { MessageBox.Show("The drive directory does not exist."); } //Check if the drive is still attached
|
||||||
|
|
||||||
else if (!Directory.Exists(endDirectory)) { MessageBox.Show("The end directory does not exist."); }
|
else if (!Directory.Exists(endDirectory)) { MessageBox.Show("The end directory does not exist."); } //Check if the directory exists
|
||||||
|
|
||||||
else { //error checking is done (just in case something slips through.
|
else { //error checking is done (just in case something slips through.
|
||||||
string hash = tools.hashDirectory(drive.Name);
|
string hash = tools.hashDirectory(drive.Name); //Generate a hash of the drive in current state
|
||||||
string DBHash = databaseTools.getHashofRecentBackup(USBTools.calculateDriveID(drive)); //get the hash from the database
|
string DBHash = databaseTools.getHashofRecentBackup(USBTools.calculateDriveID(drive)); //get the hash from the database
|
||||||
MessageBox.Show("hash:" + hash + "\nDBHash:" + DBHash);
|
|
||||||
if (DBHash != "NONE") {//if the hash is found in the database
|
if (DBHash != "NONE") {//if the hash is found in the database
|
||||||
if (DBHash == hash) { //if the hash in the database matches the drive, don't backup because nothing will have changed.
|
if (DBHash == hash) { //if the hash in the database matches the drive, don't backup because nothing will have changed.
|
||||||
MessageBox.Show("No changes have been made to files on drive " + drive.VolumeLabel + ", Will not backup.", "No Changes", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
MessageBox.Show("No changes have been made to files on drive " + drive.VolumeLabel + ", Will not backup.", "No Changes", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||||
return;
|
return;
|
||||||
} else { //The actual backup case
|
} else { //The actual backup case
|
||||||
string addition; //stores any extra directory needed, mainly for adding temp.
|
string addition; //stores any extra directory needed, mainly for adding temp.
|
||||||
if (databaseTools.isCompression(USBTools.calculateDriveID(drive)))
|
if (databaseTools.isCompression(USBTools.calculateDriveID(drive))) //is the drive using compression
|
||||||
{
|
{
|
||||||
addition = "\\Temp";
|
addition = "\\Temp"; //Append temp to directory for backup
|
||||||
}
|
}
|
||||||
else {addition = "\\" + drive.VolumeLabel + "-" + DateTime.Now.ToString(); }
|
else {addition = "\\" + drive.VolumeLabel + "-" + DateTime.Now.ToString(); } //Generate directory with date / Time
|
||||||
copyFiles(drive.Name.Substring(0, 1), endDirectory + addition, visible, drive, hash);
|
copyFiles(drive.Name.Substring(0, 1), endDirectory + addition, visible, drive, hash); //Initiate the copy
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
MessageBox.Show("An error occured when getting the drive hash. Please try again.", "Hash Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
MessageBox.Show("An error occured when getting the drive hash. Please try again.", "Hash Error", MessageBoxButtons.OK, MessageBoxIcon.Error); //Hashes dont match
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -67,16 +66,16 @@ namespace Saviour_Backup_System
|
||||||
private void copyFiles(string driveLetter, string endDirectory, bool display, DriveInfo drive, string hash)
|
private void copyFiles(string driveLetter, string endDirectory, bool display, DriveInfo drive, string hash)
|
||||||
{
|
{
|
||||||
backups++; //appends to the number of backups running
|
backups++; //appends to the number of backups running
|
||||||
progressBars.Add(new copyProgressBar());
|
progressBars.Add(new copyProgressBar()); //Create the display progressbar and store it for reference
|
||||||
layoutPanel.Controls.Add(new copyProgressLabel());
|
layoutPanel.Controls.Add(new copyProgressLabel()); //Create the display label and add it to display
|
||||||
layoutPanel.Controls.Add(progressBars[backups]);
|
layoutPanel.Controls.Add(progressBars[backups]); //Display the progress bar and add it to display
|
||||||
|
|
||||||
|
|
||||||
copyFilesList.Add(new CopyFiles.CopyFiles(driveLetter + ":\\", endDirectory));
|
copyFilesList.Add(new CopyFiles.CopyFiles(driveLetter + ":\\", endDirectory)); //Generate copying oject, and pass it details of copy
|
||||||
|
|
||||||
transfersList.Add(new transferWindow(backups, drive, hash, endDirectory));
|
transfersList.Add(new transferWindow(backups, drive, hash, endDirectory)); //Generate progress window, and pass it details
|
||||||
transfersList[backups].SynchronizationObject = this;
|
transfersList[backups].SynchronizationObject = this;
|
||||||
copyFilesList[backups].CopyAsync(transfersList[backups]);
|
copyFilesList[backups].CopyAsync(transfersList[backups]); //Initiate the backup (in a new thread) from reference to copying object
|
||||||
|
|
||||||
if (!display) { transfersList[backups].Hide(); } //if it is a startup backup process, quickly hide the dialog.
|
if (!display) { transfersList[backups].Hide(); } //if it is a startup backup process, quickly hide the dialog.
|
||||||
}
|
}
|
||||||
|
|
Reference in a new issue