protected override string RenderView() { var searchSettings = new SearchModuleSettings(ModuleId); return(MvcRenderingEngine.Render("Search", "Index", new { viewName = searchSettings.View, pageSize = searchSettings.PageSize })); }
public override void UpdateSettings() { var searchSettings = new SearchModuleSettings(ModuleId) { View = ViewComboBox.SelectedValue }; int pageSize; if (int.TryParse(PageSizeTextBox.Text, out pageSize)) { searchSettings.PageSize = pageSize; } searchSettings.ShowManufactures = ShowManufacturesCheckBox.Checked; searchSettings.ShowVendors = ShowVendorsCheckBox.Checked; }
public override void LoadSettings() { if (!IsPostBack) { FillForm(); var searchSettings = new SearchModuleSettings(ModuleId); ViewContentLabel.Text = LocalizeString("NoneSelectedText"); if (!string.IsNullOrEmpty(searchSettings.View)) { ViewComboBox.SelectedValue = searchSettings.View; ViewContentLabel.Text = searchSettings.View; } PageSizeTextBox.Text = searchSettings.PageSize.ToString(); ShowManufacturesCheckBox.Checked = searchSettings.ShowManufactures; ShowVendorsCheckBox.Checked = searchSettings.ShowVendors; } }
public ActionResult Index(string search, int pageSize = 9) { // Initial Setup PageDescription += " | " + search; ViewBag.Search = search; var model = new SearchPageViewModel(); if (!string.IsNullOrEmpty(search)) { // Pager Vars var pageNumber = GetPageNumber(); var logSearchQuery = pageNumber == 1; // Do Search var manager = new SearchManager(HccApp.CurrentRequestContext); var queryAdv = new ProductSearchQueryAdv(); if (!string.IsNullOrEmpty(Request.Params["categories"])) { queryAdv.Categories = Request.Params["categories"].Split(',').ToList(); logSearchQuery = false; } if (!string.IsNullOrEmpty(Request.Params["types"])) { queryAdv.Types = Request.Params["types"].Split(',').ToList(); logSearchQuery = false; } if (!string.IsNullOrEmpty(Request.Params["manufacturers"])) { queryAdv.Manufactures = Request.Params["manufacturers"].Split(',').ToList(); logSearchQuery = false; } if (!string.IsNullOrEmpty(Request.Params["vendors"])) { queryAdv.Vendors = Request.Params["vendors"].Split(',').ToList(); logSearchQuery = false; } var keys = Request.Params.AllKeys. Where(k => k != null && k.StartsWith("prop")). ToList(); foreach (var key in keys) { var propId = int.Parse(key.Substring(4)); var propValue = Request.Params[key]; queryAdv.Properties.Add(propId, new[] { propValue }); } if (keys.Count > 0) { logSearchQuery = false; } if (!string.IsNullOrEmpty(Request.Params["minprice"])) { queryAdv.MinPrice = decimal.Parse(Request.Params["minprice"], CultureInfo.InvariantCulture); logSearchQuery = false; } if (!string.IsNullOrEmpty(Request.Params["maxprice"])) { queryAdv.MaxPrice = decimal.Parse(Request.Params["maxprice"], CultureInfo.InvariantCulture); logSearchQuery = false; } if (logSearchQuery && HttpContext.Items["HccSearchQueryLogged"] == null) { HttpContext.Items["HccSearchQueryLogged"] = true; } else { logSearchQuery = false; } var result = manager.DoProductSearch(HccApp.CurrentStore.Id, search, queryAdv, pageNumber, pageSize, logSearchQuery); var products = HccApp.CatalogServices.Products.FindManyWithCache(result.Products); var searchSettings = new SearchModuleSettings(ModuleContext.ModuleId); model.ShowManufactures = searchSettings.ShowManufactures; model.ShowVendors = searchSettings.ShowVendors; model.Categories = result.Categories; model.Types = result.Types; model.Manufactures = result.Manufacturers; model.Vendors = result.Vendors; model.Properties = result.Properties; model.MinPrice = result.MinPrice; model.MaxPrice = result.MaxPrice; model.SelectedCategories = result.SelectedCategories; model.SelectedTypes = result.SelectedTypes; model.SelectedManufactures = result.SelectedManufacturers; model.SelectedVendors = result.SelectedVendors; model.SelectedProperties = result.SelectedProperties; model.SelectedMinPrice = result.SelectedMinPrice; model.SelectedMaxPrice = result.SelectedMaxPrice; model.Products = PrepProducts(products); model.PagerData.PageSize = pageSize; model.PagerData.TotalItems = result.TotalCount; model.PagerData.CurrentPage = pageNumber; model.PagerData.PageRange = 20; var currentParams = new List <string>(); string[] parameters = { "search", "categories", "types", "manufacturers", "vendors", "minprice", "maxprice" }; var props = Request.QueryString.AllKeys. Where(k => k != null && k.StartsWith("prop")). ToList(); currentParams.AddRange(parameters); currentParams.AddRange(props); foreach (var param in currentParams) { if (!string.IsNullOrEmpty(Request.QueryString[param])) { model.CurrentRouteValues[param] = HttpUtility.UrlEncode(Request.QueryString[param]); } } var routeValues = new RouteValueDictionary(model.CurrentRouteValues); model.PagerData.PagerUrlFormatFirst = Url.RouteHccUrl(HccRoute.Search, routeValues); routeValues.Add("p", "{0}"); model.PagerData.PagerUrlFormat = Url.RouteHccUrl(HccRoute.Search, routeValues); } return(View(model)); }