public async Task <bool> Handle(AtualizarProdutoCommand request, CancellationToken cancellationToken) { try { if (!request.IsValid()) { ValidationErrors(request); return(await Task.FromResult(false)); } var produto = new Produto { Id = request.IDProduto, Valor = request.Valor, Nome = request.Nome }; _produtoRepository.Update(produto); return(await Task.FromResult(true)); } catch (Exception ex) { await Mediator.Publish(new DomainNotification(request.MessageType, $"Erro: {ex.Message}"), cancellationToken); return(await Task.FromResult(false)); } }
public IGenericCommandResult Handle(AtualizarProdutoCommand command) { command.Validate(); if (!command.Valid) { return(new GenericCommandResult(false, "Ops...", command.Notifications)); } var produtoEmBanco = _repo.ObterProdutoPorId(command.ProdutoId); if (produtoEmBanco is null) { return(new GenericCommandResult(false, "Produto não localizado", command)); } produtoEmBanco.Descricao = command.Descricao; produtoEmBanco.Valor = command.Valor; produtoEmBanco.DataAtualizacao = DateTime.Now; _repo.AtualizarProduto(produtoEmBanco); return(new GenericCommandResult(true, "Produto atualizado com sucesso", produtoEmBanco)); }
public async Task <IActionResult> AtualizarProduto([FromQuery] ProdutoDTO dto) { AtualizarProdutoCommand command = _mapper.Map <AtualizarProdutoCommand>(dto); string response = await this._mediator.Send(command); return(CreatedAtAction("AtualizarProduto", (object)response)); }
public void AtualizarProdutoIdProdutoNaoInformado() { var produtoServiceMock = new ProdutoServicoMock(); var produtoServico = produtoServiceMock.ConfigurarAtualizarSucesso().Build(); var atualizarCommand = new AtualizarProdutoCommand(produtoServico, new AtualizarProdutoValidador(produtoServico)); Assert.ThrowsAsync <ArgumentException>(() => atualizarCommand.Executar(new AtualizarProdutosInput { CodigoProduto = 0 })); }
public void AtualizarProdutoSucesso() { var produtoServiceMock = new ProdutoServicoMock(); var produtoServico = produtoServiceMock.ConfigurarAtualizarSucesso().Build(); var atualizarCommand = new AtualizarProdutoCommand(produtoServico, new AtualizarProdutoValidador(produtoServico)); Assert.DoesNotThrowAsync(() => atualizarCommand.Executar(new AtualizarProdutosInput { CodigoProduto = 1 })); }
public void Handle(AtualizarProdutoCommand message) { if (!CommandValido(message)) { return; } Produto produto = new Produto(message.Nome, message.Descricao, message.Valor, message.ImagemUri, message.Sabor, message.Id_produtoTipo, message.Ids_tamanhos, message.Ids_produto_valorExcecoes); _produtoRepository.Atualizar(produto); if (!Commit()) { return; } }
public Task <bool> Handle(AtualizarProdutoCommand request, CancellationToken cancellationToken) { var produto = new Entities.Produto.Produto(request.Id, request.Nome, request.Preco, request.PromocaoId); if (!produto.EhValido()) { NotificarValidacoesErro(produto.ValidationResult); return(Task.FromResult(false)); } _produtoRepository.Atualizar(produto); if (Commit()) { _mediator.PublicarEvento(new ProdutoAtualizadoEvent(produto.Id, produto.Nome, produto.Preco, produto.PromocaoId)); } return(Task.FromResult(true)); }
public void Atualizar(Produto produto) { AtualizarProdutoCommand command = new AtualizarProdutoCommand(produto.Id, produto.Nome, produto.Descricao, produto.Valor, produto.ImagemUri, produto.Sabor, produto.Id_produtoTipo, produto.Ids_tamanhos, produto.Ids_produto_valorExcecoes); _bus.SendCommand(command); }
public IActionResult Atualizar([FromServices] ProdutoHandler handler, [FromBody] AtualizarProdutoCommand command) { var result = handler.Handle(command); return(result.Success ? (IActionResult)Ok(result) : UnprocessableEntity(result)); }