示例#1
0
        public async System.Threading.Tasks.Task Handle(CancelTaskCommand message)
        {
            var task = _repository.GetById <OTask>(message.TaskId);

            task.Cancel(message.UserId);
            await _repository.SaveAsync(task);

            this.MarkAsComplete();
        }
示例#2
0
        public void MarkAsCancelled(Guid taskId)
        {
            var cmd = new CancelTaskCommand()
            {
                TaskId = taskId,
                UserId = GetCurrentUserId()
            };

            Bus.Send(cmd);
        }
示例#3
0
        private async Task LoadDiagramsAsync(DirectoryInfo directory)
        {
            PreviewDiagrams.Clear();

            if (directory == null || !directory.Exists)
            {
                return;
            }

            using (var cts = new CancellationTokenSource())
            {
                IsLoadingDiagrams = true;

                var progress = _notifications.StartProgress();
                progress.Report(new ProgressUpdate {
                    PercentComplete = 0, Message = Resources.Progress_LoadingDiagrams
                });

                CancelLoadDiagramsCommand = new CancelTaskCommand(cts);

                // Capture diagrams as they are read for a more responsive UI.
                var readProgress = new Progress <ReadDiagramsProgress>(p =>
                                                                       p.Diagram.Apply(d => PreviewDiagrams.Add(_previewDiagramFactory(d))));

                // Report progress to UI by passing up progress data.
                progress.Wrap(readProgress, p => new ProgressUpdate
                {
                    PercentComplete = (int?)(p.ProcessedDiagramCount / (double)p.TotalDiagramCount * 100),
                    Message         = String.Format(Resources.Progress_LoadingFile, p.ProcessedDiagramCount, p.TotalDiagramCount)
                });

                try
                {
                    await _diagramIO.ReadDiagramsAsync(directory, readProgress, cts.Token);

                    progress.Report(ProgressUpdate.Completed(Resources.Progress_DiagramsLoaded));
                }
                catch (OperationCanceledException)
                {
                    progress.Report(ProgressUpdate.Completed(Resources.Progress_DiagramLoadCanceled));
                }
                catch (Exception e)
                {
                    progress.Report(ProgressUpdate.Failed(e));
                }
                finally
                {
                    CancelLoadDiagramsCommand = null;
                    IsLoadingDiagrams         = false;
                }
            }
        }
示例#4
0
        public void Test_Cancel()
        {
            // Arrange.
            var cts     = new CancellationTokenSource();
            var command = new CancelTaskCommand(cts);

            EventArgs    args = null;
            EventHandler canExecuteChangedHandler = (o, e) => args = e;

            command.CanExecuteChanged += canExecuteChangedHandler;

            // Act.
            command.Execute(null);

            // Assert.
            Assert.True(cts.IsCancellationRequested);
            Assert.False(command.CanExecute(null));
            Assert.NotNull(args);
        }
        public DeveloperWindowViewModel()
        {
            MarketList = new ObservableCollection <Market>(MarketManager.GetAllMarkets(RunTimeContext.Context.DatabaseContext));
            SetTaskList();

            IsReadOnly = true;

            SelectedTask = TaskList.FirstOrDefault();

            ChangeTaskCommand     = new ChangeTaskCommand(this);
            SaveTaskCommand       = new SaveTaskCommand(this);
            CancelSaveTaskCommand = new CancelTaskCommand(this);

            CreateTaskCommand = new CreateTaskCommand(this);
            LaunchTaskCommand = new LaunchTaskCommand(this);

            CloseCommand    = new CloseWindowCommand();
            MaximizeCommand = new MaximizeWindowCommand();
            MinimizeCommand = new MinimizeWindowCommand();
        }