public async Task <UpdateQuantidadeOutput> UpdateCarrinhoAsync(string clienteId, UpdateQuantidadeInput item)
        {
            if (item == null)
            {
                throw new ArgumentNullException();
            }

            if (string.IsNullOrWhiteSpace(item.ProdutoId))
            {
                throw new ArgumentException();
            }

            if (item.Quantidade < 0)
            {
                throw new ArgumentOutOfRangeException();
            }

            var carrinho = await GetCarrinhoAsync(clienteId);

            ItemCarrinho itemDB = carrinho.Itens.Where(i => i.ProdutoId == item.ProdutoId).SingleOrDefault();

            itemDB.Quantidade = item.Quantidade;
            if (item.Quantidade == 0)
            {
                carrinho.Itens.Remove(itemDB);
            }
            CarrinhoCliente carrinhoCliente = await UpdateCarrinhoAsync(carrinho);

            return(new UpdateQuantidadeOutput(itemDB, carrinhoCliente));
        }
Example #2
0
        public async Task <CarrinhoCliente> UpdateCarrinhoAsync(CarrinhoCliente carrinho)
        {
            var criado = await _database.StringSetAsync(carrinho.ClienteId, JsonConvert.SerializeObject(carrinho));

            if (!criado)
            {
                _logger.LogError("Erro ao atualizar o carrinho.");
                return(null);
            }
            return(await GetCarrinhoAsync(carrinho.ClienteId));
        }
Example #3
0
 public UpdateQuantidadeOutput(ItemCarrinho itemPedido, CarrinhoCliente carrinhoCliente)
 {
     ItemPedido      = itemPedido;
     CarrinhoCliente = carrinhoCliente;
 }
Example #4
0
 public CarrinhoCliente(CarrinhoCliente carrinhoCliente)
 {
     this.ClienteId = carrinhoCliente.ClienteId;
     this.Itens     = carrinhoCliente.Itens;
 }