Exemple #1
0
        public Task RevertAsync(RevertControl control, IProgress <OperationProgress> progress)
        {
            Verify.State.IsFalse(IsDisposed, "Repository is disposed.");

            switch (control)
            {
            case RevertControl.Abort:
                if (progress != null)
                {
                    progress.Report(new OperationProgress(Resources.StrsAbortingRevert.AddEllipsis()));
                }
                break;

            case RevertControl.Continue:
                if (progress != null)
                {
                    progress.Report(new OperationProgress(Resources.StrsContinuingRevert.AddEllipsis()));
                }
                break;

            case RevertControl.Quit:
                if (progress != null)
                {
                    progress.Report(new OperationProgress(Resources.StrsQuitingRevert.AddEllipsis()));
                }
                break;

            default:
                throw new ArgumentException(
                          "Unknown RevertControl value: {0}".UseAsFormat(control),
                          "control");
            }

            var block = Monitor.BlockNotifications(
                RepositoryNotifications.BranchChanged,
                RepositoryNotifications.WorktreeUpdated,
                RepositoryNotifications.IndexUpdated);

            return(Accessor.Revert.InvokeAsync(new RevertParameters(control), progress, CancellationToken.None)
                   .ContinueWith(
                       t =>
            {
                block.Dispose();
                _head.Refresh();
                _status.Refresh();
                OnStateChanged();
                OnUpdated();
                TaskUtility.PropagateFaultedStates(t);
            }));
        }
Exemple #2
0
        private void InvokeRevertControl(RevertControl control)
        {
            var parent = _guiProvider.Environment.MainForm;

            GuiCommands.Revert(parent, Repository, control);
        }
Exemple #3
0
 /// <summary>Create <see cref="CherryPickParameters"/>.</summary>
 public RevertParameters(RevertControl control)
 {
     Control = control;
 }
Exemple #4
0
        public static GuiCommandStatus Revert(IWin32Window parent, Repository repository, RevertControl control)
        {
            Verify.Argument.IsNotNull(repository, nameof(repository));

            try
            {
                ProgressForm.MonitorTaskAsModalWindow(parent, Resources.StrRevert,
                                                      p => repository.RevertAsync(control, p));
                return(GuiCommandStatus.Completed);
            }
            catch (OperationCanceledException)
            {
                return(GuiCommandStatus.Canceled);
            }
            catch (GitException exc)
            {
                GitterApplication.MessageBoxService.Show(
                    parent,
                    exc.Message,
                    Resources.ErrFailedToRevert,
                    MessageBoxButton.Close,
                    MessageBoxIcon.Error);
                return(GuiCommandStatus.Faulted);
            }
        }
Exemple #5
0
 /// <summary>Create <see cref="CherryPickParameters"/>.</summary>
 public RevertParameters(RevertControl control)
 {
     Control = control;
 }
Exemple #6
0
 public Command GetRevertCommand(RevertControl control)
 {
     switch(control)
     {
         case RevertControl.Continue:
             return new RevertCommand(RevertCommand.Continue());
         case RevertControl.Quit:
             return new RevertCommand(RevertCommand.Quit());
         case RevertControl.Abort:
             return new RevertCommand(RevertCommand.Abort());
         default:
             throw new ArgumentException("Unknown enum value.", "control");
     }
 }
Exemple #7
0
        private void InvokeRevertControl(RevertControl control)
        {
            var parent = _guiProvider.Environment.MainForm;

            GuiCommands.Revert(parent, Repository, control);
        }
Exemple #8
0
        public Task RevertAsync(RevertControl control, IProgress<OperationProgress> progress)
        {
            Verify.State.IsFalse(IsDisposed, "Repository is disposed.");

            switch(control)
            {
                case RevertControl.Abort:
                    if(progress != null)
                    {
                        progress.Report(new OperationProgress(Resources.StrsAbortingRevert.AddEllipsis()));
                    }
                    break;
                case RevertControl.Continue:
                    if(progress != null)
                    {
                        progress.Report(new OperationProgress(Resources.StrsContinuingRevert.AddEllipsis()));
                    }
                    break;
                case RevertControl.Quit:
                    if(progress != null)
                    {
                        progress.Report(new OperationProgress(Resources.StrsQuitingRevert.AddEllipsis()));
                    }
                    break;
                default:
                    throw new ArgumentException(
                        "Unknown RevertControl value: {0}".UseAsFormat(control),
                        "control");
            }

            var block = Monitor.BlockNotifications(
                RepositoryNotifications.BranchChanged,
                RepositoryNotifications.WorktreeUpdated,
                RepositoryNotifications.IndexUpdated);
            return Accessor.Revert.InvokeAsync(new RevertParameters(control), progress, CancellationToken.None)
                .ContinueWith(
                t =>
                {
                    block.Dispose();
                    _head.Refresh();
                    _status.Refresh();
                    OnStateChanged();
                    OnUpdated();
                    TaskUtility.PropagateFaultedStates(t);
                });
        }