Exemplo n.º 1
0
        public ICommandResult LivroAlterar(long id, [FromBody] AtualizarLivroCommand command)
        {
            command.Id = id;
            var result = (AtualizarLivroCommandResult)_handler.Handle(command);

            return(result);
        }
Exemplo n.º 2
0
        public Task Handle(AtualizarLivroCommand command, CancellationToken cancellationToken)
        {
            if (!command.IsValid())
            {
                NotifyValidationErrors(command);
                return(Task.CompletedTask);
            }

            var livro = _livroRepository.GetById(command.Id);

            if (livro == null)
            {
                _bus.RaiseEvent(new DomainNotification(command.MessageType, $"Livro {command.Id} não foi encontrado na base de dados."));
                return(Task.CompletedTask);
            }

            livro.AtualizarInformacoes(command.Titulo,
                                       command.Descricao,
                                       command.Autor,
                                       command.Editora,
                                       command.NumeroEdicao,
                                       command.AnoEdicao,
                                       command.ISBN);

            _livroRepository.Update(livro);

            Commit();
            return(Task.CompletedTask);
        }
Exemplo n.º 3
0
        public Task Handle(AtualizarLivroCommand command, CancellationToken cancellationToken)
        {
            // simple fields validations
            if (!command.IsValid())
            {
                NotifyValidationErrors(command);
                return(Task.CompletedTask);
            }

            var livro = _livroRepository.GetById(command.Id);

            if (livro == null)
            {
                _mediatr.RaiseEvent(new DomainNotification(command.MessageType, "Livro não encontrado."));
                return(Task.CompletedTask);
            }

            //updating data
            livro.Atualizar(command.Titulo, command.Descricao, command.Autor, command.Editora, command.Edicao, command.ISBN, command.Idioma);

            _livroRepository.Update(livro);

            Commit();
            return(Task.CompletedTask);
        }
        public Task Handle(AtualizarLivroCommand request, CancellationToken cancellationToken)
        {
            var livroAtual = _livroRepository.ObterPorId(request.Id);

            if (!LivroExistente(request.Id, request.MessageType))
            {
                return(Task.CompletedTask);
            }

            var livro = new Livro(request.Isbn, request.Autor, request.Nome, request.Valor, request.DataPublicacao, request.ImgCapa);

            if (IsbnExistente(livro.Isbn, request.MessageType))
            {
                NotificarValidacoesErro(livro.ValidationResult);
                return(Task.CompletedTask);
            }

            _livroRepository.Atualizar(livro);

            if (Commit())
            {
                _mediator.PublicarEvento(new LivroAtualizadoEvent(request.Id, request.Isbn, request.Autor, request.Nome, request.Valor, request.DataPublicacao, request.ImgCapa));
            }

            return(Task.CompletedTask);
        }
Exemplo n.º 5
0
        public ICommandResult Handle(AtualizarLivroCommand command)
        {
            try
            {
                if (!command.ValidarCommand())
                {
                    return(new AtualizarLivroCommandResult(false, "Por favor, corrija as inconsistências abaixo", command.Notifications));
                }

                if (!_repository.CheckId(command.Id))
                {
                    AddNotification("Id", "Id inválido. Este id não está cadastrado!");
                    return(new AtualizarLivroCommandResult(false, "Por favor, corrija as inconsistências abaixo", Notifications));
                }

                long   id     = command.Id;
                string nome   = command.Nome;
                string autor  = command.Autor;
                int    edicao = command.Edicao;
                string isbn   = command.Isbn;
                string imagem = command.Imagem;

                Livro livro = new Livro(id, nome, autor, edicao, isbn, imagem);

                _repository.Alterar(livro);

                var retorno = new AtualizarLivroCommandResult(true, "Livro alterado com sucesso!", new
                {
                    Id     = livro.Id,
                    Nome   = livro.Nome,
                    Autor  = livro.Autor,
                    Edicao = livro.Edicao,
                    Isbn   = livro.Isbn,
                    Imagem = livro.Imagem
                });

                return(retorno);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Exemplo n.º 6
0
        public LivrosControllerTests()
        {
            mockMapper       = new Mock <IMapper>();
            mockMediator     = new Mock <IMediatorHandler>();
            mockNotification = new Mock <DomainNotificationHandler>();

            var mockRepository = new Mock <ILivroRepository>();

            livroViewModel = new LivroViewModel();

            incluirLivroCommand   = new IncluirLivroCommand("978-8536509266", "Java 8. Programação de Computadores", "José Augusto N. G. Manzano e Roberto Affonso da Costa Junior", Convert.ToDecimal("94.70"), DateTime.Now, null);
            atualizarLivroCommand = new AtualizarLivroCommand(Guid.Parse("0f93729b-225f-425e-99c4-cc72f0720e2d"), "978-8536509266", "Java 8. Programação de Computadores", "José Augusto N. G. Manzano", Convert.ToDecimal("100.05"), DateTime.Now, null);
            excluirLivroCommand   = new ExcluirLivroCommand("978-8536509266");

            livrosController = new LivrosController(
                mockNotification.Object,
                mockRepository.Object,
                mockMapper.Object,
                mockMediator.Object);
        }