public virtual void LoadPriceRangeFilters(string priceRangeStr, IWebHelper webHelper, IPriceFormatter priceFormatter) { var priceRangeList = GetPriceRangeList(priceRangeStr); if (priceRangeList.Count > 0) { this.Enabled = true; var selectedPriceRange = GetSelectedPriceRange(webHelper, priceRangeStr); this.Items = priceRangeList.ToList().Select(x => { //from&to var item = new PriceRangeFilterItem(); if (x.From.HasValue) item.From = priceFormatter.FormatPrice(x.From.Value, true, false); if (x.To.HasValue) item.To = priceFormatter.FormatPrice(x.To.Value, true, false); string fromQuery = string.Empty; if (x.From.HasValue) fromQuery = x.From.Value.ToString(new CultureInfo("en-US")); string toQuery = string.Empty; if (x.To.HasValue) toQuery = x.To.Value.ToString(new CultureInfo("en-US")); //is selected? if (selectedPriceRange != null && selectedPriceRange.From == x.From && selectedPriceRange.To == x.To) item.Selected = true; //filter URL string url = webHelper.ModifyQueryString(webHelper.GetThisPageUrl(true), QUERYSTRINGPARAM + "=" + fromQuery + "-" + toQuery, null); url = ExcludeQueryStringParams(url, webHelper); item.FilterUrl = url; return item; }).ToList(); if (selectedPriceRange != null) { //remove filter URL string url = webHelper.RemoveQueryString(webHelper.GetThisPageUrl(true), QUERYSTRINGPARAM); url = ExcludeQueryStringParams(url, webHelper); this.RemoveFilterUrl = url; } } else { this.Enabled = false; } }
public virtual void LoadPriceRangeFilters(string priceRangeStr, IWebHelper webHelper, IPriceFormatter priceFormatter) { var priceRangeList = GetPriceRangeList(priceRangeStr); if (priceRangeList.Any()) { this.Enabled = true; var selectedPriceRange = GetSelectedPriceRange(webHelper, priceRangeStr); this.Items = priceRangeList.ToList().Select(x => { //from&to var item = new PriceRangeFilterItem(); if (x.From.HasValue) { item.From = priceFormatter.FormatPrice(x.From.Value, true, false); } if (x.To.HasValue) { item.To = priceFormatter.FormatPrice(x.To.Value, true, false); } string fromQuery = string.Empty; if (x.From.HasValue) { fromQuery = x.From.Value.ToString(new CultureInfo("en-US")); } string toQuery = string.Empty; if (x.To.HasValue) { toQuery = x.To.Value.ToString(new CultureInfo("en-US")); } //is selected? if (selectedPriceRange != null && selectedPriceRange.From == x.From && selectedPriceRange.To == x.To) { item.Selected = true; } //filter URL string url = webHelper.ModifyQueryString(webHelper.GetThisPageUrl(true), QUERYSTRINGPARAM, $"{fromQuery}-{toQuery}"); url = ExcludeQueryStringParams(url, webHelper); item.FilterUrl = url; return(item); }).ToList(); if (selectedPriceRange != null) { //remove filter URL string url = webHelper.ModifyQueryString(webHelper.GetThisPageUrl(true), QUERYSTRINGPARAM, null); url = ExcludeQueryStringParams(url, webHelper); this.RemoveFilterUrl = url; } } else { this.Enabled = false; } }
public virtual async Task LoadPriceRangeFilters(string priceRangeStr, IWebHelper webHelper, IPriceFormatter priceFormatter, ICurrencyService currencyService, Currency currency) { var priceRangeList = GetPriceRangeList(priceRangeStr); if (priceRangeList.Any()) { Enabled = true; var selectedPriceRange = GetSelectedPriceRange(webHelper, priceRangeStr); foreach (var x in priceRangeList.ToList()) { //from&to var item = new PriceRangeFilterItem(); if (x.From.HasValue) { x.From = await currencyService.ConvertFromPrimaryStoreCurrency(x.From.Value, currency); item.From = priceFormatter.FormatPrice(x.From.Value, true, false); } if (x.To.HasValue) { x.To = await currencyService.ConvertFromPrimaryStoreCurrency(x.To.Value, currency); item.To = priceFormatter.FormatPrice(x.To.Value, true, false); } string fromQuery = string.Empty; if (x.From.HasValue) { fromQuery = x.From.Value.ToString(new CultureInfo("en-US")); } string toQuery = string.Empty; if (x.To.HasValue) { toQuery = x.To.Value.ToString(new CultureInfo("en-US")); } //is selected? if (selectedPriceRange != null && selectedPriceRange.From == x.From && selectedPriceRange.To == x.To) { item.Selected = true; } //filter URL string url = webHelper.ModifyQueryString(webHelper.GetThisPageUrl(true), QUERYSTRINGPARAM, $"{fromQuery}-{toQuery}"); url = ExcludeQueryStringParams(url, webHelper); item.FilterUrl = url; Items.Add(item); } if (selectedPriceRange != null) { //remove filter URL string url = webHelper.ModifyQueryString(webHelper.GetThisPageUrl(true), QUERYSTRINGPARAM, null); url = ExcludeQueryStringParams(url, webHelper); this.RemoveFilterUrl = url; } } else { this.Enabled = false; } }