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(); }
public void MarkAsCancelled(Guid taskId) { var cmd = new CancelTaskCommand() { TaskId = taskId, UserId = GetCurrentUserId() }; Bus.Send(cmd); }
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; } } }
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(); }