public void OnFailure(CustomRestoreAgent agent, Models.Restore restore, Exception exception) { IsRunning = false; var message = string.Format("Restore failed: {0}", exception != null ? exception.Message : "Canceled?"); Report.AddErrorMessage(message); Error(message); //StatusInfo.Update(RestoreStatusLevel.ERROR, message); restore.DidFail(); _daoRestore.Update(restore); OnUpdate(new RestoreOperationEvent { Status = RestoreOperationStatus.Failed, Message = message }); }
public void OnFinish(CustomRestoreAgent agent, Models.Restore restore, Exception ex = null) { IsRunning = false; switch (CurrentState) { default: { var message = string.Format("Restore failed: {0}", ex.Message); Warn(message); //StatusInfo.Update(RestoreStatusLevel.WARN, message); Report.AddErrorMessage(ex.Message); Report.OperationStatus = OperationStatus.FAILED; restore.DidFail(); _daoRestore.Update(restore); OnUpdate(new RestoreOperationEvent { Status = RestoreOperationStatus.Failed, Message = message }); break; } case RestoreOperationState.FINISHING: { TransferResults.Statistics stats = agent.Results.Stats; var message = string.Format( "Restore 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(RestoreStatusLevel.OK, message); switch (agent.Results.OverallStatus) //switch (backup.Status) { default: throw new InvalidOperationException("Unexpected TransferStatus"); case TransferStatus.CANCELED: Report.OperationStatus = OperationStatus.CANCELED; restore.WasCanceled(); _daoRestore.Update(restore); OnUpdate(new RestoreOperationEvent { Status = RestoreOperationStatus.Canceled, Message = message }); break; case TransferStatus.FAILED: Report.OperationStatus = OperationStatus.FAILED; restore.DidFail(); _daoRestore.Update(restore); OnUpdate(new RestoreOperationEvent { Status = RestoreOperationStatus.Failed, Message = message }); break; case TransferStatus.COMPLETED: Report.OperationStatus = OperationStatus.COMPLETED; restore.DidComplete(); _daoRestore.Update(restore); OnUpdate(new RestoreOperationEvent { Status = RestoreOperationStatus.Finished, Message = message }); break; } break; } } Report.StartedAt = Restore.StartedAt; Report.FinishedAt = Restore.FinishedAt.Value; }