private async Task ValidarItemCarrinho(ItemProdutoDTO produto, int quantidadeSelecionada)
        {
            if (quantidadeSelecionada == null)
            {
                AddErroProcessamento("Produto inexistente!");
            }
            if (quantidadeSelecionada < 1)
            {
                AddErroProcessamento($"Escolha ao menos uma unidade do produto {produto.Nome}");
            }

            var carrinho = await carrinhoService.ObterCarrinho();

            var itemCarrinho = carrinho.Itens.FirstOrDefault(item => item.ProdutoId == produto.Id);

            if (itemCarrinho != null && itemCarrinho.Quantidade + quantidadeSelecionada > produto.QuantidadeEstoque)
            {
                AddErroProcessamento(FormatarMensagemQuantidadeMaximaEstoque(produto.Nome, produto.QuantidadeEstoque, quantidadeSelecionada));
                return;
            }

            if (quantidadeSelecionada > produto.QuantidadeEstoque)
            {
                AddErroProcessamento(FormatarMensagemQuantidadeMaximaEstoque(produto.Nome, produto.QuantidadeEstoque, quantidadeSelecionada));
            }
        }
Exemple #2
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}");
            }
        }
Exemple #3
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}!");
            }
        }