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));
        }
        public async Task <CarrinhoCliente> AddCarrinhoAsync(string clienteId, ItemCarrinho 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();

            if (itemDB == null)
            {
                itemDB = new ItemCarrinho(item.Id, item.ProdutoId, item.ProdutoNome, item.PrecoUnitario, item.Quantidade);
                carrinho.Itens.Add(item);
            }
            return(await UpdateCarrinhoAsync(carrinho));
        }
示例#3
0
 public UpdateQuantidadeOutput(ItemCarrinho itemPedido, CarrinhoCliente carrinhoCliente)
 {
     ItemPedido      = itemPedido;
     CarrinhoCliente = carrinhoCliente;
 }