public ICommandResult LivroAlterar(long id, [FromBody] AtualizarLivroCommand command) { command.Id = id; var result = (AtualizarLivroCommandResult)_handler.Handle(command); return(result); }
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); }
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); }
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; } }
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); }