Exemplo n.º 1
0
        public GetFiltersResponse GetFilters()
        {
            var getFiltersResponse = new GetFiltersResponse();

            try
            {
                var _dataAccessResponse = _productDataAccess.GetFilters();
                if (_dataAccessResponse != null)
                {
                    getFiltersResponse = _productHelper.CreateCategoryTree(_dataAccessResponse);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("ProductModel.GetFilters : ERROR : " + ex.Message);
                throw;
            }
            return(getFiltersResponse);
        }
Exemplo n.º 2
0
        public GetFiltersResponse CreateCategoryTree(List <ProductDataAccessResponse> _dataAccessResponse)
        {
            GetFiltersResponse getFiltersResponse = new GetFiltersResponse();
            var listCategorysTemp    = new List <CategorysEntity>();
            var listSubCategorysTemp = new List <SubCategorysEntity>();
            var listMarcasTemp       = new List <MarcasEntity>();
            var listTrees            = new List <CategorysTreeFilters>();

            foreach (var obj in _dataAccessResponse)
            {
                listCategorysTemp.Add(obj.CategoryUsed);
                listSubCategorysTemp.Add(obj.SubCategoryUsed);
                listMarcasTemp.Add(obj.MarcaUsed);
            }

            //Elimino las repeticiones
            var listCategorysUniques    = listCategorysTemp.GroupBy(x => x.IdCategory).Select(y => y.First()).ToList();
            var listSubCategorysUniques = listSubCategorysTemp.GroupBy(x => x.IdSubCategory).Select(y => y.First()).ToList();
            var listMarcasUniques       = listMarcasTemp.GroupBy(x => x.IdMarca).Select(y => y.First()).ToList();

            //Construyo el arbol
            foreach (var cat in listCategorysUniques)
            {
                var categoryTree = new CategorysTreeFilters();
                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.SubCategorysFilters = listSubCategorysTree;
                listTrees.Add(categoryTree);
            }
            getFiltersResponse.CategorysFilters = listTrees;
            getFiltersResponse.MarcasFilters    = listMarcasUniques;
            return(getFiltersResponse);
        }