예제 #1
0
        private void OnFinish()
        {
            _IsRunning = false;

            TransferResults.Statistics stats = null;

            switch (_Operation)
            {
            case OperationType.BACKUP:
                btnBackup.Text = "Backup";
                stats          = _BackupAgent.Results.Stats;
                Info("Backup completed! Stats: {0} completed, {1} failed, {2} canceled, {3} pending, {4} running",
                     stats.Completed, stats.Failed, stats.Canceled, stats.Pending, stats.Running);
                break;

            case OperationType.RESTORE:
                btnRestore.Text = "Restore";
                stats           = _RestoreAgent.Results.Stats;
                Info("Restore completed! Stats: {0} completed, {1} failed, {2} canceled, {3} pending, {4} running",
                     stats.Completed, stats.Failed, stats.Canceled, stats.Pending, stats.Running);
                break;
            }

            _Operation = OperationType.UNKNOWN;
        }
예제 #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;
        }