예제 #1
0
        private async Task <bool> HasEstoque(int kitId, int quantidade, string statusAtivacao)
        {
            var kit = await _kitsServices.GetByIdAsync(kitId);

            var(armacoesDoKit, status) = await _produtoCorServices.GetListByKitAsync(kit.Nome, "AT");

            var carrinho = SessionHelper.GetObjectFromJson <List <CarrinhoViewModel> >(_httpContext.HttpContext.Session, "cart");

            foreach (var item in armacoesDoKit)
            {
                var quant = quantidade;

                if (carrinho != null)
                {
                    foreach (var produtos in carrinho)
                    {
                        if (produtos.Produto != null)
                        {
                            if (produtos.Produto.Id == item.ProdutoModelId && produtos.Cor.Id == item.CorModelId)
                            {
                                quant += produtos.QuantidadeIndividual;
                            }
                        }
                        else
                        {
                            if (produtos.Kits.Id == kit.Id)
                            {
                                continue;
                            }

                            var kits = await _kitsServices.GetByIdAsync(produtos.Kits.Id);

                            var(armacoes, st) = await _produtoCorServices.GetListByKitAsync(kits.Nome, "AT");

                            quant += armacoes.Where(x => x.ProdutoModelId == item.ProdutoModelId && x.CorModelId == item.CorModelId).Sum(x => produtos.QuantidadeIndividual);
                        }
                    }
                }

                if (!await _produtoCorServices.VerificarEstoque(item.ProdutoModelId, item.CorModelId, quant, "AT"))
                {
                    return(false);
                }
            }


            return(true);
        }
예제 #2
0
 public async Task <KitsViewModel> GetByIdAsync(int id)
 {
     return(_mapper.Map <KitsViewModel>(await _kitsServices.GetByIdAsync(id)));
 }