Exemple #1
0
        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));
            }
        }
Exemple #2
0
        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));
        }
Exemple #3
0
        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));
        }
Exemple #4
0
        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
            }));
        }
Exemple #5
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);
        }
Exemple #9
0
        public IActionResult Atualizar([FromServices] ProdutoHandler handler, [FromBody] AtualizarProdutoCommand command)
        {
            var result = handler.Handle(command);

            return(result.Success ? (IActionResult)Ok(result) : UnprocessableEntity(result));
        }