public async Task <IActionResult> UpdateTaskStatusAsync(Guid conferenceId, long taskId, [FromBody] UpdateTaskRequest updateTaskRequest) { _logger.LogDebug("UpdateTaskStatus"); try { var command = new UpdateTaskCommand(conferenceId, taskId, updateTaskRequest.UpdatedBy); await _commandHandler.Handle(command); } catch (TaskNotFoundException ex) { _logger.LogError(ex, "Unable to find task"); return(NotFound()); } var query = new GetTasksForConferenceQuery(conferenceId); var tasks = await _queryHandler.Handle <GetTasksForConferenceQuery, List <Task> >(query); var task = tasks.SingleOrDefault(x => x.Id == taskId); if (task == null) { _logger.LogError("Unable to find task"); return(NotFound()); } var response = TaskToResponseMapper.MapTaskToResponse(task); return(Ok(response)); }
protected override async Task PublishStatusAsync(CallbackEvent callbackEvent) { var query = new GetTasksForConferenceQuery(SourceConference.Id); var tasks = await QueryHandler.Handle <GetTasksForConferenceQuery, List <Domain.Task> >(query); var task = tasks.SingleOrDefault(x => x.Type == TaskType.Participant && x.OriginId == SourceParticipant.Id && x.Status != TaskStatus.ToDo); if (task == null) { var command = new AddTaskCommand(SourceConference.Id, SourceParticipant.Id, "Media blocked", TaskType.Participant); await CommandHandler.Handle(command); } }
public async Task <IActionResult> GetTasksForConferenceAsync(Guid conferenceId) { _logger.LogDebug("GetTasksForConference"); var query = new GetTasksForConferenceQuery(conferenceId); try { var tasks = await _queryHandler.Handle <GetTasksForConferenceQuery, List <Task> >(query); var response = tasks.Select(TaskToResponseMapper.MapTaskToResponse); return(Ok(response)); } catch (Exception e) { _logger.LogError(e, "Unable to find tasks"); return(BadRequest()); } }
public async System.Threading.Tasks.Task Should_retrieve_all_alerts() { var conference = new ConferenceBuilder(true) .WithParticipant(UserRole.Individual, "Applicant") .WithParticipant(UserRole.Judge, "Judge") .Build(); var seededConference = await TestDataManager.SeedConference(conference); _newConferenceId = seededConference.Id; var alerts = InitTasks(conference); await TestDataManager.SeedAlerts(alerts); var query = new GetTasksForConferenceQuery(_newConferenceId); var results = await _handler.Handle(query); results.Count.Should().Be(alerts.Count); results.Should().BeInDescendingOrder(x => x.Created); }