예제 #1
0
        public async Task <ActionResult <RegBookResponseObj> > CheckInBook([FromBody] OrderObj requestObj)
        {
            OrderCommand command  = _mapper.Map <OrderCommand>(requestObj);
            var          response = await _mediator.Send(command);

            if (response.OrderId < 1 || !response.Status.IsSuccessful)
            {
                return(BadRequest(response));
            }
            var locatioUri = _uriService.GetBookUri(response.OrderId.ToString());

            return(Created(locatioUri, response));
        }
예제 #2
0
        public async Task <IActionResult> Create([FromBody] CreateBookRequest req)
        {
            _logger.LogInformation("Requisitando criação de livro...");
            _logger.LogInformation("Dados da requisição: {req}",
                                   JsonConvert.SerializeObject(req));

            var newBook = _mapper.Map <Book>(req);
            var result  = await _bookService
                          .AddBookAsync(newBook)
                          .ConfigureAwait(false);

            if (!result)
            {
                _logger.LogWarning("Erro ao tentar inserir livro. " +
                                   "Aplicação encerrou a requisição com o status {statusCode}",
                                   HttpStatusCode.BadRequest);
                return(BadRequest());
            }

            var uri = _uriService
                      .GetBookUri(newBook.BookId.ToString());

            _logger.LogInformation("Novo livro inserido!");
            return(Created(uri, _mapper.Map <BookResponse>(newBook)));
        }