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)); }
public UpdateQuantidadeOutput(ItemCarrinho itemPedido, CarrinhoCliente carrinhoCliente) { ItemPedido = itemPedido; CarrinhoCliente = carrinhoCliente; }