Exemplo n.º 1
0
        public async Task <Result <LivroModel> > AddLivroAsync(LivroModel livro)
        {
            var novoLivro = _mapper.Map <Livro>(livro);
            var validator = new LivroValidator();

            var resultValidation = validator.Validate(novoLivro);

            if (!resultValidation.IsValid)
            {
                _logger.LogWarning("Novo livro não passou na validação. Erros: {0}", resultValidation.Errors.ToJson());
                return(Result <LivroModel> .Invalid(resultValidation.AsErrors()));
            }

            var livroAdicionado = await _repositorio.AddAsync(novoLivro);

            Guard.Against.Null(livroAdicionado, "Novo livro");

            _logger.LogInformation("Novo livro foi inserido com sucesso");
            return(Result <LivroModel> .Success(
                       _mapper.Map <LivroModel>(livroAdicionado)));
        }
Exemplo n.º 2
0
        public async Task <Result <LivroModel> > UpdateLivroAsync(Guid livroId, LivroModel livroModel)
        {
            Guard.Against.NullOrEmpty(livroId, "LivroId");

            var livro = await _repositorio.GetByIdAsync(livroId);

            if (livro is null)
            {
                _logger.LogWarning("Não foi encontrado livro com id igual a '{0}'", livroId);
                return(Result <LivroModel> .NotFound());
            }

            livro.Titulo          = !string.IsNullOrEmpty(livroModel.Titulo) && livro.Titulo != livroModel.Titulo ? livroModel.Titulo : livro.Titulo;
            livro.Descricao       = !string.IsNullOrEmpty(livroModel.Descricao) && livro.Descricao != livroModel.Descricao ? livroModel.Descricao : livro.Descricao;
            livro.Valor           = livroModel.Valor != decimal.Zero && livro.Valor != livroModel.Valor ? livroModel.Valor : livro.Valor;
            livro.ISBN_10         = livroModel.Valor != 0 && livro.ISBN_10 != livroModel.ISBN_10 ? livroModel.ISBN_10 : livro.ISBN_10;
            livro.Edicao          = livro.Edicao != livroModel.Edicao ? livroModel.Edicao : livro.Edicao;
            livro.DataPublicacao  = livro.DataPublicacao != livroModel.DataPublicacao ? livroModel.DataPublicacao : livro.DataPublicacao;
            livro.Idioma          = livro.Idioma != livroModel.Idioma ? livroModel.Idioma : livro.Idioma;
            livro.NumeroPaginas   = livro.NumeroPaginas != livroModel.NumeroPaginas ? livroModel.NumeroPaginas : livro.NumeroPaginas;
            livro.DataAtualizacao = DateTime.Now;

            var validator        = new LivroValidator();
            var resultValidation = validator.Validate(livro);

            if (!resultValidation.IsValid)
            {
                _logger.LogWarning("Atualização do livro não passou na validação. Erros: {0}", resultValidation.Errors.ToJson());
                return(Result <LivroModel> .Invalid(resultValidation.AsErrors()));
            }

            await _repositorio.UpdateAsync(livro);

            _logger.LogInformation("Livro foi atualizado com sucesso", livro.ToJson());
            return(Result <LivroModel> .Success(
                       _mapper.Map <LivroModel>(livro)));
        }
Exemplo n.º 3
0
 public LivroValidatorTest()
 {
     _fixture   = new Fixture();
     _validator = new LivroValidator();
     _request   = _fixture.Create <RequestLivro>();
 }
Exemplo n.º 4
0
 public void Setup()
 {
     validator = new LivroValidator();
 }