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());
        }