private void LoadDrillDownModel(DrillDownJsonModel model, int pageNumber, int pageSize, ProductSearchResultAdv result) { var products = HccApp.CatalogServices.Products.FindManyWithCache(result.Products); model.Types = ToCheckBoxItems(result.Types, result.SelectedTypes, result.TotalCount); model.Properties = new List <PropertyFacetItem>(); foreach (var prop in result.Properties) { var selProp = result.SelectedProperties.FirstOrDefault(s => s.Id == prop.Id); var prop2 = new PropertyFacetItem { Id = prop.Id, DisplayName = prop.DisplayName, PropertyName = prop.PropertyName }; if (selProp != null && selProp.PropertyValues.Count > 0) { prop2.FacetItems = prop.FacetItems .Select( m => new CheckboxFacetItem(m, selProp.PropertyValues.Any(pv => pv.Id == m.Id), result.TotalCount)) .ToList <FacetItem>(); } else { prop2.FacetItems = prop.FacetItems .Select(m => new CheckboxFacetItem(m, false)) .ToList <FacetItem>(); } model.Properties.Add(prop2); } model.Products = products.Select(p => new SingleProductJsonModel(p, HccApp)).ToList(); model.TotalCount = result.TotalCount; model.MinPrice = result.MinPrice; model.MaxPrice = result.MaxPrice; model.SelectedMinPrice = result.SelectedMinPrice; model.SelectedMaxPrice = result.SelectedMaxPrice; model.SelectedManufacturers = result.SelectedManufacturers; model.SelectedVendors = result.SelectedVendors; model.SelectedTypes = result.SelectedTypes; model.SelectedProperties = result.SelectedProperties; model.PagerData.PageSize = pageSize; model.PagerData.TotalItems = result.TotalCount; model.PagerData.CurrentPage = pageNumber; model.PagerData.PageRange = 20; }
private DrillDownJsonModel BuildDrillDownModel(CategoryFilterViewModel filter, CategoryModuleSettings sett, int pageNumber, int pageSize) { var model = new DrillDownJsonModel(); var manager = new SearchManager(HccApp.CurrentRequestContext); var queryAdv = BuildDrillDownQuery(filter); var result = manager.DoProductSearch(HccApp.CurrentStore.Id, null, queryAdv, pageNumber, pageSize); model.Manufacturers = sett.ShowManufacturers ? ToCheckBoxItems(result.Manufacturers, result.SelectedManufacturers, result.TotalCount) : new List <CheckboxFacetItem>(); model.Vendors = sett.ShowVendors ? ToCheckBoxItems(result.Vendors, result.SelectedVendors, result.TotalCount) : new List <CheckboxFacetItem>(); model.SubCategories = LoadDrillDownCategories(filter.CategoryId); model.SortOrder = queryAdv.SortOrder; LoadDrillDownModel(model, pageNumber, pageSize, result); return(model); }