Exemple #1
0
        public void OnFailure(CustomSynchronizationAgent agent, Models.Synchronization sync, Exception exception)
        {
            IsRunning = false;

            var message = string.Format("Synchronization failed: {0}", exception != null ? exception.Message : "Exception not informed");

            Error(message);
            //StatusInfo.Update(SyncStatusLevel.ERROR, message);

            sync.DidFail();
            _daoSynchronization.Update(sync);

            OnUpdate(new SyncOperationEvent {
                Status = SyncOperationStatus.Failed, Message = message
            });
        }
Exemple #2
0
        public void OnFinish(CustomSynchronizationAgent agent, Models.Synchronization sync, Exception ex = null)
        {
            IsRunning = false;

            switch (CurrentState)
            {
            default:
            {
                var message = string.Format("Synchronization failed: {0}", ex.Message);
                Warn(message);
                //StatusInfo.Update(SyncStatusLevel.WARN, message);
                Report.AddErrorMessage(ex.Message);

                Report.OperationStatus = OperationStatus.FAILED;
                sync.DidFail();
                _daoSynchronization.Update(sync);
                OnUpdate(new SyncOperationEvent {
                        Status = SyncOperationStatus.Failed, Message = message
                    });

                break;
            }

            case SyncOperationState.FINISHING:
            {
                SyncResults.Statistics stats = agent.Results.Stats;
                var message = string.Format("Synchronization finished! Stats: {0} files", stats.FileCount);
                Info(message);
                //StatusInfo.Update(SyncStatusLevel.OK, message);

                // TODO(jweyrich): Handle overall failure and cancelation during Sync?
                sync.DidComplete();
                _daoSynchronization.Update(sync);
                OnUpdate(new SyncOperationEvent {
                        Status = SyncOperationStatus.Finished, Message = message
                    });

                /*
                 * switch (agent.Results.OverallStatus)
                 * //switch (sync.Status)
                 * {
                 *      default: throw new InvalidOperationException("Unexpected TransferStatus");
                 *      case TransferStatus.CANCELED:
                 *              Report.OperationStatus = OperationStatus.CANCELED;
                 *              sync.WasCanceled();
                 *              _daoSynchronization.Update(sync);
                 *              OnUpdate(new SyncOperationEvent { Status = SyncOperationStatus.Canceled, Message = message });
                 *              break;
                 *      case TransferStatus.FAILED:
                 *              Report.OperationStatus = OperationStatus.FAILED;
                 *              sync.DidFail();
                 *              _daoSynchronization.Update(sync);
                 *              OnUpdate(new SyncOperationEvent { Status = SyncOperationStatus.Failed, Message = message });
                 *              break;
                 *      case TransferStatus.COMPLETED:
                 *              Report.OperationStatus = OperationStatus.COMPLETED;
                 *              sync.DidComplete();
                 *              _daoSynchronization.Update(sync);
                 *              OnUpdate(new SyncOperationEvent { Status = SyncOperationStatus.Finished, Message = message });
                 *              break;
                 * }
                 */

                break;
            }
            }
        }