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); }
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); }