private async Task DoRestore(string source, int version = 3) { SqlExecutionResult <string> sqlResult = ServiceBus.Get <IDataBaseService>().Restore(source, version, true); sqlResult.SqlMessageSent += SqlResultSqlMessageSent; try { await sqlResult.Start(); sqlResult.SqlMessageSent -= SqlResultSqlMessageSent; this.TraceInfo("Le processus de restauration de la base de données s'est déroulé avec succés"); SqlMessages.Add(new SqlOutput("restore process of the backup file has succeeded.", SqlOutputKind.Success)); try { if (File.Exists(source)) { File.Delete(source); } } catch (Exception ex) { SqlMessages.Add(new SqlOutput("An error occured while trying to remove the imported backup file.", SqlOutputKind.Error)); this.TraceError("Suppression du fichier temporaire importé pour le processus de restauration", ex); } RestartApplication(); } catch (Exception e) { sqlResult.SqlMessageSent -= SqlResultSqlMessageSent; this.TraceError(e, "Une erreur s'est produite durant le processus de restauration de base de donnée"); SqlMessages.Add(new SqlOutput(e.InnerException ?? e)); SqlMessages.Add(new SqlOutput("Restoration failed and rolled back.", SqlOutputKind.Error)); try { if (File.Exists(source)) { File.Delete(source); } } catch (Exception ex) { SqlMessages.Add(new SqlOutput("An error occured while trying to remove the imported backup file.", SqlOutputKind.Error)); this.TraceError("Suppression du fichier temporaire importé pour le processus de restauration", ex); } RestartApplicationWithError(); } }
private async Task <string> DoBackup() { SqlExecutionResult <string> sqlResult = ServiceBus.Get <IDataBaseService>().Backup(true); sqlResult.SqlMessageSent += SqlResultSqlMessageSent; try { string source = await sqlResult.Start(); sqlResult.SqlMessageSent -= SqlResultSqlMessageSent; return(source); } catch (Exception e) { this.TraceError(e, "Une erreur s'est produite durant le processus de backup de base de donnée"); SqlMessages.Add(new SqlOutput(e.InnerException ?? e)); SqlMessages.Add(new SqlOutput("Backup failed and rolled back.", SqlOutputKind.Error)); return(null); } }