public async Task <IActionResult> AtualizarItemCarrinho(Guid produtoId, CarrinhoItem item) { var carrinho = await _carrinhoRepository.ObterCarrinhoCliente(_user.ObterUserId()); var itemCarrinho = await ObterItemCarrinhoValidado(produtoId, carrinho, item); if (itemCarrinho is null) { return(CustomResponse()); } carrinho.AtualizarUnidades(itemCarrinho, item.Quantidade); ValidarCarrinho(carrinho); if (!OperacaoValida()) { return(CustomResponse()); } _carrinhoRepository.AtualizarItem(itemCarrinho); _carrinhoRepository.Atualizar(carrinho); await PersistirDados(); return(CustomResponse()); }
public Task <bool> Handle(AtualizarCarrinhoCommand request, CancellationToken cancellationToken) { var carrinho = new Entities.Carrinho.Carrinho(request.Id, request.Quantidade, request.ProdutoId); if (!carrinho.EhValido()) { NotificarValidacoesErro(carrinho.ValidationResult); return(Task.FromResult(false)); } _carrinhoRepository.Atualizar(carrinho); if (Commit()) { _mediator.PublicarEvento(new CarrinhoAtualizadoEvent(carrinho.Id, carrinho.Quantidade, carrinho.ProdutoId)); } return(Task.FromResult(true)); }
public Resultado <Carrinho> AdicionarProdutoAoCarrinho(Produto request, string idCarrinho) { Carrinho carrinho = null; if (!string.IsNullOrEmpty(idCarrinho)) { carrinho = _carrinhoRepository.Obter(idCarrinho); } if (carrinho == null) { carrinho = _carrinhoRepository.Inserir(new Carrinho { Id = idCarrinho }); } var produto = _produtoRepository.Obter(request.Id); var resultado = new Resultado <Carrinho>(); if (carrinho != null && produto != null) { carrinho.AdicionarProduto(produto); var carrinhoAtualizado = _carrinhoRepository.Atualizar(carrinho); resultado.Mensagem = "Produto incluído no carrinho com sucesso"; resultado.Dado = carrinhoAtualizado; resultado.Sucesso = true; } else { resultado.Mensagem = "Produto não incluído no carrinho"; resultado.Sucesso = false; } return(resultado); }