コード例 #1
0
        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}");
            }
        }
コード例 #2
0
        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}!");
            }
        }
コード例 #3
0
        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)));
        }
コード例 #4
0
 public async Task <IActionResult> Index()
 {
     return(CustomResponse(await _carrinhoService.ObterCarrinho()));
 }
コード例 #5
0
 public async Task <IActionResult> Index()
 {
     return(View(await _carrinhoService.ObterCarrinho()));
 }
コード例 #6
0
 public async Task <IViewComponentResult> InvokeAsync()
 {
     return(View(await _carrinhoService.ObterCarrinho() ?? new CarrinhoViewModel()));
 }