public AddDB(MainWindow mainWindow) { InitializeComponent(); this.mainWindow = mainWindow; db = new Database(); db.RaiseConnectionSuccessful += new Database.ConnectionSuccessful(db_OnConnectionSuccessful); db.RaiseConnectionUnsuccessful += new Database.ConnectionUnsuccessful(db_OnConnectionUnsuccessful); this.Visible = true; }
public void DeleteOld(Database db) { if (MySQLBackUpFTP_ADOPSE.Properties.Settings.Default.deleteOld && MySQLBackUpFTP_ADOPSE.Properties.Settings.Default.keepOnFTP > 0 && MySQLBackUpFTP_ADOPSE.Properties.Settings.Default.sendBackup) { deleteAttempts++; try { using (Session session = new Session()) { session.Open(sessionOptions); ArrayList files = new ArrayList(); RemoteDirectoryInfo directory = session.ListDirectory(session.HomePath); Regex regex = new Regex("^DB_"+db.GetAlias()+@"_bu............\.sql$"); for (int i = 0; i < directory.Files.Count; i++) { Match match = regex.Match(directory.Files[i].Name); if (match.Success) files.Add(directory.Files[i].Name); } files.Sort(); for (int i = 0; i < files.Count - MySQLBackUpFTP_ADOPSE.Properties.Settings.Default.keepOnFTP; i++) session.RemoveFiles((string)files[i]); } } catch (Exception) { if (deleteAttempts < 4) DeleteOld(db); else new Log("Error trying to delete backup file(s) from the FTP server."); } } }
private void DoTransmission(Database db,EmailNotifications emailSettings) { sendAttempts++; new Log("FTP transmission for \"" + db.GetAlias() + "\" started."); try { using (Session session = new Session()) { session.Open(sessionOptions); TransferOptions transferOptions = new TransferOptions(); transferOptions.TransferMode = TransferMode.Binary; TransferOperationResult transferResult; transferResult = session.PutFiles(db.GetFile(), "DB_" + db.GetAlias() + "_bu" + DateTime.Now.ToString("yyyyMMddHHmm") + ".sql", false, transferOptions); transferResult.Check(); new Log("FTP transmission for \"" + db.GetAlias() + "\" completed successfully."); session.Close(); emailSettings.NotifyCheck(db.GetAlias(),EmailNotifications.FTP_OPERATION_OK); } } catch (Exception ex) { if (sendAttempts < 6) DoTransmission(db,emailSettings); else { new Log("ERROR: FTP transmission for \"" + db.GetAlias() + "\" failed."); emailSettings.NotifyCheck(db.GetAlias(), EmailNotifications.FTP_OPERATION_FAIL); } } }
public void Transmission(Database db,EmailNotifications emailSettings) { if (MySQLBackUpFTP_ADOPSE.Properties.Settings.Default.sendBackup) { DoTransmission(db,emailSettings); } }