Example #1
0
        public async Task Armazenar(LivroDto dto)
        {
            _validadorDelivro.Validar(dto);
            var livro = Novolivro(dto);

            if (_notify.IsValid())
            {
                if (dto.Id.Value > Constantes.Zero)
                {
                    livro = await _livroRepositorio.ObterPorIdAsync(dto.Id.Value);

                    _alteradorDeLivro.Alterar(livro, dto);
                }

                if (livro.Validar() && livro.Id == Constantes.Zero)
                {
                    var livroExistente = await _livroRepositorio.ObterPorTitulo(livro.Titulo);

                    _validadorDelivro.ValidarSeLivroExiste(livroExistente);

                    if (_notify.IsValid())
                    {
                        await _livroRepositorio.AdicionarAsync(livro);
                    }
                }
                else
                {
                    _notify.NewNotification(livro.ValidationResult);
                }
            }
        }