public void OnFailure(CustomBackupAgent agent, Models.Backup backup, Exception exception) { IsRunning = false; logger.Log(LogLevel.Error, exception, "Caught exception: {0}", exception.Message); var message = string.Format("Backup failed: {0}", exception != null ? exception.Message : "Exception not informed"); Report.AddErrorMessage(message); Error(message); //StatusInfo.Update(BackupStatusLevel.ERROR, message); backup.DidFail(); _daoBackup.Update(backup); OnUpdate(new BackupOperationEvent { Status = BackupOperationStatus.Failed, Message = message }); }
public void OnFinish(CustomBackupAgent agent, Models.Backup backup, Exception ex = null) { IsRunning = false; switch (CurrentState) { default: { var message = string.Format("Backup failed: {0}", ex.Message); Warn(message); //StatusInfo.Update(BackupStatusLevel.WARN, message); Report.AddErrorMessage(ex.Message); Report.OperationStatus = OperationStatus.FAILED; backup.DidFail(); _daoBackup.Update(backup); OnUpdate(new BackupOperationEvent { Status = BackupOperationStatus.Failed, Message = message }); break; } case BackupOperationState.FINISHING: { TransferResults.Statistics stats = agent.Results.Stats; var message = string.Format( "Backup finished! Stats: {0} completed, {1} failed, {2} canceled, {3} pending, {4} running", stats.Completed, stats.Failed, stats.Canceled, stats.Pending, stats.Running); Info(message); //StatusInfo.Update(BackupStatusLevel.OK, message); switch (agent.Results.OverallStatus) //switch (backup.Status) { default: throw new InvalidOperationException("Unexpected TransferStatus"); case TransferStatus.CANCELED: Report.OperationStatus = OperationStatus.CANCELED; backup.WasCanceled(); _daoBackup.Update(backup); OnUpdate(new BackupOperationEvent { Status = BackupOperationStatus.Canceled, Message = message }); break; case TransferStatus.FAILED: Report.OperationStatus = OperationStatus.FAILED; backup.DidFail(); _daoBackup.Update(backup); OnUpdate(new BackupOperationEvent { Status = BackupOperationStatus.Failed, Message = message }); break; case TransferStatus.COMPLETED: Report.OperationStatus = OperationStatus.COMPLETED; backup.DidComplete(); _daoBackup.Update(backup); OnUpdate(new BackupOperationEvent { Status = BackupOperationStatus.Finished, Message = message }); break; } break; } } Report.StartedAt = Backup.StartedAt; Report.FinishedAt = Backup.FinishedAt.Value; }