public async Task <AssignmentDetail> HandleAsync(GetAssignmentDetailQuery query) { var assignment = await _repository.GetById(query.Id); if (assignment == null) { throw new EntityNotFoundException($"Assignment with ID '{query.Id}' Not Found."); } return(_mapper.Map <AssignmentDetail>(assignment)); }
public async Task <ActionResult> Get(Guid id) { var query = new GetAssignmentDetailQuery { Id = id }; var assignment = await _queryHandler.HandleAsync(query); if (assignment == null) { return(NotFound()); } return(Ok(assignment)); }
public async Task <ActionResult> Post([FromBody] CreateAssignmentRequest request) { try { var command = _mapper.Map <CreateAssignmentCommand>(request); var id = await _commandHandler.HandleAsync(command); var query = new GetAssignmentDetailQuery { Id = id }; var assignment = await _queryHandler.HandleAsync(query); return(CreatedAtAction(nameof(Get), new { id = assignment.Id }, assignment)); } catch (Exception) { return(BadRequest()); } }
public async Task <ActionResult> Put([FromBody] UpdateAssignmentRequest request, Guid id) { try { var command = _mapper.Map <UpdateAssignmentCommand>(request); command.Id = id; await _commandHandler.HandleAsync(command); var query = new GetAssignmentDetailQuery { Id = command.Id }; var assignment = await _queryHandler.HandleAsync(query); return(Ok(assignment)); } catch (Exception) { return(BadRequest()); } }