Exemple #1
0
        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));
        }
Exemple #3
0
        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);
        }