//Used to import the backups from the specified backup folder. public async Task ImportDatabases(List <string> databases, string connectionString) { string folderPath = $"{_backupFolderPath}{ DateTime.Now.ToString("dd-MM-yyyy")}\\"; try { using (SqlConnection conn = new SqlConnection(connectionString)) { //Try to open the server connection. conn.Open(); FormControls.OutputToApp("Importing databases..."); for (int i = 0; i < databases.Count; i++) { //Setup command for sql. FormControls.OutputToApp($"Dropping database: {databases[i]}"); string sqlCommand = $"DROP DATABASE IF EXISTS {databases[i]}"; SqlCommand cmd = new SqlCommand(sqlCommand, conn); cmd.ExecuteNonQuery(); await SQLPackage.Run("Import", databases[i], connectionString, folderPath); } } } catch (Exception e) { FormControls.OutputToApp($"Error: {e}"); } FormControls.OutputToApp("Finished Importing"); }
//Used to export the database backup from LIVE to a local folder. public async Task <bool> ExportDatabases(List <string> databases, string connectionString) { string folderPath = $"{_backupFolderPath}{DateTime.Now.ToString("dd-MM-yyyy")}\\"; FormControls.ToggleAllElements(false); Directory.CreateDirectory(folderPath); for (int i = 0; i < databases.Count; i++) { if (!await SQLPackage.Run("Export", databases[i], connectionString, folderPath)) { FormControls.ClearOutputToApp(); return(false); } } FormControls.OutputToApp("------------------"); FormControls.OutputToApp("Finished Exporting"); return(true); }