public void CancelTaskNotifyTaskCanceled() { this.Configuration.PredefineResult(null, c => c.GetPollingQueueKey(typeof(FakeTask))); Guid taskId = this.TaskProcessorFacade.SubmitTask(new FakeTask()); this.TaskProcessorFacade.MessageBus.Tasks.Receiver.SubscribeForChannels(MessageBusChannel.TaskCancelRequest); TaskEventEventArgs args = Helpers.WaitForEvent <TaskEventEventArgs>( TimeSpan.FromSeconds(1), handler => this.TaskProcessorFacade.MessageBus.Tasks.Receiver.TaskCancelRequested += handler, () => this.TaskProcessorFacade.CancelTask(taskId)); Assert.AreEqual(taskId, args.TaskId); }
public virtual void RaiseTaskFailed() { Guid taskId = Guid.NewGuid(); DateTime timestamp = DateTime.UtcNow; this.Receiver.SubscribeForChannels(MessageBusChannel.TaskFailed); TaskEventEventArgs args = Helpers.WaitForEvent <TaskEventEventArgs>( this.Timeout, handler => this.Receiver.TaskFailed += handler, () => this.Sender.NotifyTaskFailed(taskId, timestamp, Guid.NewGuid(), false, "Hello Error")); Assert.AreEqual(taskId, args.TaskId); Assert.AreEqual(timestamp, args.TimestampUtc); }
public void RaiseTaskCancelRequest() { Guid taskId = Guid.NewGuid(); DateTime timestampUtc = DateTime.UtcNow; this.Receiver.SubscribeForChannels(MessageBusChannel.TaskCancelRequest); TaskEventEventArgs args = Helpers.WaitForEvent <TaskEventEventArgs>( this.Timeout, handler => this.Receiver.TaskCancelRequested += handler, () => this.Sender.NotifyTaskCancelRequest(taskId, timestampUtc)); Assert.AreEqual(taskId, args.TaskId); Assert.AreEqual(timestampUtc, args.TimestampUtc); }
public virtual void RaiseTaskCancelCompletedAfterUnsubscribeFromAllChannelsExcept() { Guid taskId = Guid.NewGuid(); DateTime timestamp = DateTime.UtcNow; this.Receiver.SubscribeForChannels(MessageBusChannel.TaskCancelCompleted); this.Receiver.UnsubscribeFromAllChannelsExcept(MessageBusChannel.TaskCancelCompleted); TaskEventEventArgs args = Helpers.WaitForEvent <TaskEventEventArgs>( this.Timeout, handler => this.Receiver.TaskCancelCompleted += handler, () => this.Sender.NotifyTaskCancelCompleted(taskId, timestamp, Guid.NewGuid(), false)); Assert.AreEqual(taskId, args.TaskId); Assert.AreEqual(timestamp, args.TimestampUtc); }
private void OnTaskCancelCompleted(object sender, TaskEventEventArgs e) { TaskViewModel taskViewModel = this.taskProcessors .SelectMany(p => p.ActiveTasks) .Concat(this.pendingTasks) .FirstOrDefault(t => t.TaskId == e.TaskId); if (taskViewModel == null) { return; } App.Current.Dispatcher.InvokeAsync(() => { taskViewModel.Status = TaskStatus.Canceled.ToString(); taskViewModel.CompletedUtc = e.TimestampUtc; }); }
private void OnTaskFailed(object sender, TaskEventEventArgs e) { TaskViewModel taskViewModel = this.taskProcessors .SelectMany(p => p.ActiveTasks) .Concat(this.pendingTasks) .FirstOrDefault(t => t.TaskId == e.TaskId); ITaskRuntimeInfo taskInfo = this.repository.TaskRuntimeInfo.GetById(e.TaskId); if ((taskInfo == null) || (taskViewModel == null)) { return; } App.Current.Dispatcher.InvokeAsync(() => { taskViewModel.Status = TaskStatus.Failed.ToString(); taskViewModel.CompletedUtc = e.TimestampUtc; taskViewModel.Error = taskInfo.Error; }); }