예제 #1
0
        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));
        }
예제 #2
0
        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));
        }
예제 #3
0
        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());
            }
        }
예제 #4
0
        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());
            }
        }