public CatalogExtendedPagingFilteringModel() { ManufacturerFilter = new ManufacturerFilterModel(); CategoryFilter = new CategoryFilterModel(); ProductAttributeFilter = new AttributeFilterModel(); PriceRangeSliderFilter = new PriceRangeSliderModel(); OuterSorting = ProductOuterSortingEnumAF.None; //PriceRangeSliderItem = new PriceRangeSliderItemModel(); }
public override IViewComponentResult Invoke(object data = null) { var dataAsDict = data as Dictionary <string, object>; if (dataAsDict == null) { return(R.Success.ComponentResult); } var searchModel = dataAsDict["model"] as ProductSearchModel; if (searchModel == null) { return(null); } var selectedFilters = _searchQueryParserService.ParseToDictionary(searchModel.Filters); var availableFilterModels = searchModel.AvailableFilters.Select(x => { var model = new AttributeFilterModel() { FilterTitle = x.Key, FilterValues = x.Value.Select(y => { return(new SelectListItem() { Text = y, Value = y, Selected = selectedFilters != null && selectedFilters.ContainsKey(x.Key) && selectedFilters[x.Key].Contains(y, StringComparer.InvariantCultureIgnoreCase) }); }) .ToList() }; return(model); }).ToList(); return(R.Success.With("filters", availableFilterModels).ComponentResult); }