Exemple #1
0
        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
            });
        }
Exemple #2
0
        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;
        }