예제 #1
0
        public async Task <BaseResponse> Inserir(RequestLivro request)
        {
            try
            {
                _logger.LogInformation("Iniciando cadastro do livro.");

                var valid = await ValidarRequest(new LivroValidator(), request);

                if (valid != null)
                {
                    return(valid);
                }

                var entity = _mapper.Map <Livro>(request);
                entity.DataCadastro = DateTime.Now;

                var response = await ObterStatusCode(
                    "Livro cadastrado com sucesso.",
                    StatusCodes.Status201Created,
                    _mapper.Map <ResponseLivro>(await _livroRepository.Inserir(entity)));

                _logger.LogInformation("Fim do cadastro do livro.");

                return(response);
            }
            catch (Exception ex)
            {
                return(await ObterStatusCode("Erro ao cadastrar o livro", StatusCodes.Status400BadRequest, null, ex));
            }
        }
예제 #2
0
 public async Task <IActionResult> Atualizar(RequestLivro livro) =>
 await TratarResultadoAsync(async() =>
 {
     var resultado = await _livroService.Atualizar(livro);
     return(new ObjectResult(resultado)
     {
         StatusCode = resultado.StatusCode
     });
 });
예제 #3
0
        public LivroControllerTest()
        {
            _fixture = new Fixture();

            _request  = _fixture.Create <RequestLivro>();
            _response = _fixture.Create <BaseResponse>();
            _service  = Substitute.For <ILivroService>();
            _logger   = Substitute.For <ILogger <LivroController> >();

            _controller = new LivroController(_service, _logger);
        }
예제 #4
0
 public LivroServiceTest()
 {
     _fixture       = new Fixture();
     _logger        = Substitute.For <ILogger <LivroService> >();
     _mapper        = Substitute.For <IMapper>();
     _repository    = Substitute.For <ILivroRepository>();
     _configuration = Substitute.For <IConfiguration>();
     _baseResponse  = _fixture.Create <BaseResponse>();
     _livro         = _fixture.Create <Livro>();
     _listaLivro    = _fixture.Create <IEnumerable <Livro> >();
     _requestLivro  = _fixture.Create <RequestLivro>();
     _responseLivro = _fixture.Create <ResponseLivro>();
     _service       = new LivroService(_repository, _mapper, _logger, _configuration);
 }
예제 #5
0
        public async Task <BaseResponse> Atualizar(RequestLivro request)
        {
            try
            {
                _logger.LogInformation("Iniciando atualização do livro.");

                var valid = await ValidarRequest(new LivroValidator(), request);

                if (valid != null)
                {
                    return(valid);
                }


                if (await _livroRepository.LivroCadastrado(request.Id))
                {
                    var entity = await _livroRepository.ObterPorId(request.Id);

                    var livro = _mapper.Map <Livro>(request);
                    livro.DataAlteracao = DateTime.Now;
                    livro.DataCadastro  = entity.DataCadastro;

                    var response = await ObterStatusCode(
                        "Livro atualizado com sucesso.",
                        StatusCodes.Status200OK,
                        _mapper.Map <ResponseLivro>(await _livroRepository.Atualizar(livro)));

                    _logger.LogInformation("Fim da atualização do livro.");

                    return(response);
                }
                else
                {
                    return(await ObterStatusCode("Livro informado não localizado.", StatusCodes.Status400BadRequest));
                }
            }
            catch (Exception ex)
            {
                return(await ObterStatusCode("Erro ao atualizar o livro", StatusCodes.Status400BadRequest, null, ex));
            }
        }
예제 #6
0
 public LivroValidatorTest()
 {
     _fixture   = new Fixture();
     _validator = new LivroValidator();
     _request   = _fixture.Create <RequestLivro>();
 }