Example #1
0
        public GetCatalogResponse CatalogFilter(List <ProductDataAccessResponse> _dataAccessResponse, GetCatalogRequest request)
        {
            GetCatalogResponse getCatalogResponse = new GetCatalogResponse();
            var listCardsTemp        = new List <GetProductResponse>();
            var listCategorysTemp    = new List <CategorysEntity>();
            var listSubCategorysTemp = new List <SubCategorysEntity>();
            var listMarcasTemp       = new List <MarcasEntity>();
            var tempObj = _dataAccessResponse;

            if (request.IdFilteredCategories.Count > 0)
            {
                tempObj = tempObj.Select(P => P).Where(P => request.IdFilteredCategories.Contains(P.ProductEntity.IdCategory)).ToList();
            }
            if (request.IdFilteredSubCategories.Count > 0)
            {
                tempObj = tempObj.Select(P => P).Where(P => request.IdFilteredSubCategories.Contains(P.ProductEntity.IdSubCategory)).ToList();
            }
            if (request.IdFilteredMarcas.Count > 0)
            {
                tempObj = tempObj.Select(P => P).Where(P => request.IdFilteredMarcas.Contains(P.ProductEntity.IdMarca)).ToList();
            }
            foreach (var obj in tempObj)
            {
                listCardsTemp.Add(obj.ProductEntity);
                listCategorysTemp.Add(obj.CategoryUsed);
                listSubCategorysTemp.Add(obj.SubCategoryUsed);
                listMarcasTemp.Add(obj.MarcaUsed);
            }
            getCatalogResponse.Products = listCardsTemp.Take(60).GroupBy(x => x.IdProduct).Select(y => y.First()).ToList();
            var listCategorysUniques    = listCategorysTemp.GroupBy(x => x.IdCategory).Select(y => y.First()).ToList();
            var listSubCategorysUniques = listSubCategorysTemp.GroupBy(x => x.IdSubCategory).Select(y => y.First()).ToList();

            getCatalogResponse.Marcas = listMarcasTemp.GroupBy(x => x.IdMarca).Select(y => y.First()).ToList();

            var listTrees = new List <GetCatalogResponse.CategorysCatalog>();

            foreach (var cat in listCategorysUniques)
            {
                var categoryTree = new GetCatalogResponse.CategorysCatalog();
                categoryTree.IdCategory  = cat.IdCategory;
                categoryTree.Description = cat.Description;
                var listSubCategorysTree = new List <SubCategorysEntity>();
                foreach (var subcat in listSubCategorysUniques)
                {
                    if (subcat.IdCategory == cat.IdCategory)
                    {
                        listSubCategorysTree.Add(subcat);
                    }
                }
                categoryTree.SubCategorys = listSubCategorysTree;
                listTrees.Add(categoryTree);
            }
            getCatalogResponse.Categorys = listTrees;
            return(getCatalogResponse);
        }
Example #2
0
        public GetCatalogResponse CreateList(List <ProductDataAccessResponse> _dataAccessResponse)
        {
            GetCatalogResponse getCatalogResponse = new GetCatalogResponse();
            var listCardsTemp        = new List <GetProductResponse>();
            var listCategorysTemp    = new List <CategorysEntity>();
            var listSubCategorysTemp = new List <SubCategorysEntity>();
            var listMarcasTemp       = new List <MarcasEntity>();

            foreach (var obj in _dataAccessResponse)
            {
                listCardsTemp.Add(obj.ProductEntity);
                listCategorysTemp.Add(obj.CategoryUsed);
                listSubCategorysTemp.Add(obj.SubCategoryUsed);
                listMarcasTemp.Add(obj.MarcaUsed);
            }
            getCatalogResponse.Products = listCardsTemp.Take(60).GroupBy(x => x.IdProduct).Select(y => y.First()).ToList();
            var listCategorysUniques    = listCategorysTemp.GroupBy(x => x.IdCategory).Select(y => y.First()).ToList();
            var listSubCategorysUniques = listSubCategorysTemp.GroupBy(x => x.IdSubCategory).Select(y => y.First()).ToList();

            getCatalogResponse.Marcas = listMarcasTemp.GroupBy(x => x.IdMarca).Select(y => y.First()).ToList();

            var listTrees = new List <GetCatalogResponse.CategorysCatalog>();

            foreach (var cat in listCategorysUniques)
            {
                var categoryTree = new GetCatalogResponse.CategorysCatalog();
                categoryTree.IdCategory  = cat.IdCategory;
                categoryTree.Description = cat.Description;
                var listSubCategorysTree = new List <SubCategorysEntity>();
                foreach (var subcat in listSubCategorysUniques)
                {
                    if (subcat.IdCategory == cat.IdCategory)
                    {
                        listSubCategorysTree.Add(subcat);
                    }
                }
                categoryTree.SubCategorys = listSubCategorysTree;
                listTrees.Add(categoryTree);
            }
            getCatalogResponse.Categorys = listTrees;
            return(getCatalogResponse);
        }