private async Task ValidarItemCarrinho(ItemProdutoDTO produto, int quantidade, bool adicionarProduto = false) { if (produto == null) { AdicionarErroProcessamento("Produto inexistente!"); } if (quantidade < 1) { AdicionarErroProcessamento($"Escolha ao menos uma unidade do produto {produto.Nome}"); } var carrinho = await _carrinhoService.ObterCarrinho(); var itemCarrinho = carrinho.Itens.FirstOrDefault(p => p.ProdutoId == produto.Id); if (itemCarrinho != null && adicionarProduto && itemCarrinho.Quantidade + quantidade > produto.QuantidadeEstoque) { AdicionarErroProcessamento($"O produto {produto.Nome} possui {produto.QuantidadeEstoque} unidades em estoque, você selecionou {quantidade}"); return; } if (quantidade > produto.QuantidadeEstoque) { AdicionarErroProcessamento($"O produto {produto.Nome} possui {produto.QuantidadeEstoque} unidades em estoque, você selecionou {quantidade}"); } }
private async Task ValidarItemCarrinho(ItemProdutoDTO produto, int quantidade) { if (produto is null) { AdicionarErroProcessamento("Produto inexistente."); } if (quantidade < 1) { AdicionarErroProcessamento($"Escolha ao menos uma unidade do produto {produto.Nome}."); } var carrinho = await _carrinhoService.ObterCarrinho(); var itemCarrinho = carrinho.Itens.FirstOrDefault(p => p.ProdutoId == produto.Id); var quantidadeTotalDeItens = itemCarrinho?.Quantidade + quantidade; if (quantidadeTotalDeItens > produto.QuantidadeEstoque) { AdicionarErroProcessamento($"O produto {produto.Nome} possui {produto.QuantidadeEstoque} unidades em estoque, você selecionou {quantidade}."); return; } if (quantidade > produto.QuantidadeEstoque) { AdicionarErroProcessamento($"Possuímos apenas {produto.QuantidadeEstoque} {produto.Nome} em estoque, você selecionou {quantidade}!"); } }
public async Task <IActionResult> AdicionarPedido(PedidoDTO pedido) { var carrinho = await _carrinhoService.ObterCarrinho(); var produtos = await _catalogoService.ObterItens(carrinho.Itens.Select(p => p.ProdutoId)); var endereco = await _clienteService.ObterEndereco(); if (!await ValidarCarrinhoProdutos(carrinho, produtos)) { return(CustomResponse()); } PopularDadosPedido(carrinho, endereco, pedido); return(CustomResponse(await _pedidoService.FinalizarPedido(pedido))); }
public async Task <IActionResult> Index() { return(CustomResponse(await _carrinhoService.ObterCarrinho())); }
public async Task <IActionResult> Index() { return(View(await _carrinhoService.ObterCarrinho())); }
public async Task <IViewComponentResult> InvokeAsync() { return(View(await _carrinhoService.ObterCarrinho() ?? new CarrinhoViewModel())); }