public ActionResult OptionList(int specificationAttributeId, GridCommand command) { if (!_permissionService.Authorize(StandardPermissionProvider.ManageCatalog)) { return(AccessDeniedView()); } var options = _specificationAttributeService.GetSpecificationAttributeOptionsBySpecificationAttribute(specificationAttributeId); var gridModel = new GridModel <SpecificationAttributeOptionModel> { Data = options.Select(x => { var model = x.ToModel(); //locales //AddLocales(_languageService, model.Locales, (locale, languageId) => //{ // locale.Name = x.GetLocalized(y => y.Name, languageId, false, false); //}); return(model); }), Total = options.Count() }; return(new JsonResult { Data = gridModel }); }
public ActionResult OptionList(int specificationAttributeId, DataSourceRequest command) { if (!_permissionService.Authorize(StandardPermissionProvider.ManageAttributes)) { return(AccessDeniedView()); } var options = _specificationAttributeService.GetSpecificationAttributeOptionsBySpecificationAttribute(specificationAttributeId); var gridModel = new DataSourceResult { Data = options.Select(x => { var model = x.ToModel(); //in order to save performance to do not check whether a product is deleted, etc model.NumberOfAssociatedProducts = _specificationAttributeService .GetProductSpecificationAttributeCount(0, x.Id); //locales //AddLocales(_languageService, model.Locales, (locale, languageId) => //{ // locale.Name = x.GetLocalized(y => y.Name, languageId, false, false); //}); return(model); }), Total = options.Count() }; return(Json(gridModel)); }
public IActionResult GetOptionsBySpecificationAttributeId(int id, string fields = "") { if (id <= 0) { return(Error(HttpStatusCode.BadRequest, "id", "invalid id")); } var specificationAttributeOptions = _specificationAttributeService.GetSpecificationAttributeOptionsBySpecificationAttribute(id); if (specificationAttributeOptions == null) { return(Error(HttpStatusCode.NotFound, "specification attribute options", "not found")); } IList <SpecificationAttributeOptionDto> attributesOptionAsDtos = specificationAttributeOptions.Select(specificAttribute => { return(_dtoHelper.PrepareSpecificationAttributeOptionDTO(specificAttribute)); }).ToList(); var productAttributesRootObject = new SpecificationAttributesOptionRootObjectDto() { SpecificationAttributeOptions = attributesOptionAsDtos }; var json = JsonFieldsSerializer.Serialize(productAttributesRootObject, fields); return(new RawJsonActionResult(json)); }
/// <summary> /// Prepare paged specification attribute option list model /// </summary> /// <param name="searchModel">Specification attribute option search model</param> /// <param name="specificationAttribute">Specification attribute</param> /// <returns>Specification attribute option list model</returns> public virtual SpecificationAttributeOptionListModel PrepareSpecificationAttributeOptionListModel( SpecificationAttributeOptionSearchModel searchModel, SpecificationAttribute specificationAttribute) { if (searchModel == null) { throw new ArgumentNullException(nameof(searchModel)); } if (specificationAttribute == null) { throw new ArgumentNullException(nameof(specificationAttribute)); } //get specification attribute options var options = _specificationAttributeService .GetSpecificationAttributeOptionsBySpecificationAttribute(specificationAttribute.Id).ToPagedList(searchModel); //prepare list model var model = new SpecificationAttributeOptionListModel().PrepareToGrid(searchModel, options, () => { return(options.Select(option => { //fill in model values from the entity var optionModel = option.ToModel <SpecificationAttributeOptionModel>(); //in order to save performance to do not check whether a product is deleted, etc optionModel.NumberOfAssociatedProducts = _specificationAttributeService .GetProductSpecificationAttributeCount(specificationAttributeOptionId: option.Id); return optionModel; })); }); return(model); }
/// <summary> /// Prepare paged specification attribute option list model /// </summary> /// <param name="searchModel">Specification attribute option search model</param> /// <param name="specificationAttribute">Specification attribute</param> /// <returns>Specification attribute option list model</returns> public virtual SpecificationAttributeOptionListModel PrepareSpecificationAttributeOptionListModel( SpecificationAttributeOptionSearchModel searchModel, SpecificationAttribute specificationAttribute) { if (searchModel == null) { throw new ArgumentNullException(nameof(searchModel)); } if (specificationAttribute == null) { throw new ArgumentNullException(nameof(specificationAttribute)); } //get specification attribute options var options = _specificationAttributeService.GetSpecificationAttributeOptionsBySpecificationAttribute(specificationAttribute.Id); //prepare list model var model = new SpecificationAttributeOptionListModel { Data = options.PaginationByRequestModel(searchModel).Select(option => { //fill in model values from the entity var optionModel = option.ToModel <SpecificationAttributeOptionModel>(); return(optionModel); }), Total = options.Count }; return(model); }
public ActionResult OptionList(int specificationAttributeId, GridCommand command) { var gridModel = new GridModel <SpecificationAttributeOptionModel>(); var options = _specificationAttributeService.GetSpecificationAttributeOptionsBySpecificationAttribute(specificationAttributeId); gridModel.Data = options.Select(x => { var model = x.ToModel(); model.NameString = Server.HtmlEncode(x.Color.IsEmpty() ? x.Name : $"{x.Name} - {x.Color}"); return(model); }); gridModel.Total = options.Count(); return(new JsonResult { Data = gridModel }); }
public HttpResponseMessage GetOptionListBySAId(HttpRequestMessage request, int specificationAttributeId, string getType = "list") { return(CreateHttpResponse(request, () => { HttpResponseMessage response = request.CreateErrorResponse(HttpStatusCode.NotFound, "Invalid specification attribute id."); if (getType.Equals("create", StringComparison.InvariantCultureIgnoreCase)) { var specificationAttribute = _specificationAttributeService.GetSpecificationAttributeById(specificationAttributeId); if (specificationAttribute != null) { var model = new SpecificationAttributeOptionVM { SpecificationAttributeId = specificationAttributeId }; response = request.CreateResponse <SpecificationAttributeOptionVM>(HttpStatusCode.OK, model); } } else if (getType.Equals("list", StringComparison.InvariantCultureIgnoreCase)) { var options = _specificationAttributeService.GetSpecificationAttributeOptionsBySpecificationAttribute(specificationAttributeId); if (options != null) { var gridModel = new DataSourceResult { Data = options.Select(x => { var model = x.ToModel(); //in order to save performance to do not check whether a product is deleted, etc model.NumberOfAssociatedProducts = _specificationAttributeService.GetProductSpecificationAttributeCount(0, x.Id); return model; }), Total = options.Count() }; response = request.CreateResponse <DataSourceResult>(HttpStatusCode.OK, gridModel); } } return response; })); }
public ActionResult OptionList(int specificationAttributeId, GridCommand command) { var gridModel = new GridModel <SpecificationAttributeOptionModel>(); if (_permissionService.Authorize(StandardPermissionProvider.ManageCatalog)) { var options = _specificationAttributeService.GetSpecificationAttributeOptionsBySpecificationAttribute(specificationAttributeId); gridModel.Data = options.Select(x => x.ToModel()); gridModel.Total = options.Count(); } else { gridModel.Data = Enumerable.Empty <SpecificationAttributeOptionModel>(); NotifyAccessDenied(); } return(new JsonResult { Data = gridModel }); }
public virtual IActionResult GetOptionsByAttributeId(string attributeId) { //do not make any permission validation here //because this method could be used on some other pages (such as product editing) //if (!_permissionService.Authorize(StandardPermissionProvider.ManageAttributes)) // return AccessDeniedView(); //this action method gets called via an ajax request if (string.IsNullOrEmpty(attributeId)) { throw new ArgumentNullException(nameof(attributeId)); } var options = _specificationAttributeService.GetSpecificationAttributeOptionsBySpecificationAttribute(Convert.ToInt32(attributeId)); var result = (from o in options select new { id = o.Id, name = o.Name }).ToList(); return(Json(result)); }
private void MappingAttributeSpecificationOption(ProductSpecification entity, SpecificationAttribute specificationAttribute) { if (!String.IsNullOrWhiteSpace(entity.Value)) { entity.SpecificationId = specificationAttribute.Id; var specificationOptions = _specificationAttributeService.GetSpecificationAttributeOptionsBySpecificationAttribute( entity.SpecificationId); //проверка связи спцификации и опции if (!specificationOptions.Any(x => x.Name.Equals(entity.Value))) { var specificationAttributeOption = new SpecificationAttributeOption(); specificationAttributeOption.Name = entity.Value; specificationAttributeOption.SpecificationAttributeId = entity.SpecificationId; _specificationAttributeService.InsertSpecificationAttributeOption(specificationAttributeOption); } } }
public async Task <ActionResult> CallApi(ConfigurationModel model) { var storeScope = this.GetActiveStoreScopeConfiguration(_storeService, _workContext); var mappingSettings = _settingService.LoadSetting <ProductMappingSettings>(storeScope); var tokenebay = EbayExtensions.GetToken(); var categoryWorldBuy = _categoryMappingRecord.Table.Where(u => u.CategoryId == model.CategoryId && u.SourceId == (int)Source.Ebay).ToList(); if (categoryWorldBuy != null) { foreach (var cateIds in categoryWorldBuy) { var clientapi1 = new HttpClient(); clientapi1.BaseAddress = new Uri("https://api.ebay.com/"); clientapi1.DefaultRequestHeaders.Clear(); clientapi1.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); clientapi1.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", tokenebay); clientapi1.Timeout = TimeSpan.FromMinutes(60); var getCategoryId = _affiliateEbayService.Get(cateIds.CategorySourceId).EbayId.ToString(); string str = "buy/browse/v1/item_summary/search?limit=200&category_ids=" + getCategoryId; if (!string.IsNullOrEmpty(model.KeyWord)) { str = str + "&q=" + model.KeyWord; } HttpResponseMessage Res1 = await clientapi1.GetAsync(str); if (Res1.IsSuccessStatusCode) { var EmpResponse1 = Res1.Content.ReadAsStringAsync().Result; var result1 = JsonConvert.DeserializeObject <SearchOutput>(EmpResponse1); int temp = int.Parse(result1.total); int value = 0; while (temp > 0) { str = str + "&offset=" + value; HttpResponseMessage Res2 = await clientapi1.GetAsync(str); if (Res2.IsSuccessStatusCode) { var EmpResponse2 = Res2.Content.ReadAsStringAsync().Result; var result2 = JsonConvert.DeserializeObject <SearchOutput>(EmpResponse2); if (result2.itemSummaries != null) { foreach (var item in result2.itemSummaries) { var checkProduct = _affiliateEbayService.GetProductBySourceId(productSourceId: item.itemId, source: (int)Source.Ebay); if (checkProduct.Id == 0) { var clientapi = new HttpClient(); clientapi.BaseAddress = new Uri("https://api.ebay.com/"); clientapi.DefaultRequestHeaders.Clear(); clientapi.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); clientapi.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", tokenebay); clientapi.Timeout = TimeSpan.FromMinutes(60); HttpResponseMessage Res = await clientapi.GetAsync("buy/browse/v1/item/" + item.itemId); if (Res.IsSuccessStatusCode) { var EmpResponse = Res.Content.ReadAsStringAsync().Result; var result = JsonConvert.DeserializeObject <ProductModelApi>(EmpResponse); if (result.price != null) { var price = Convert.ToDecimal(result.price.value); var product = new Product(); product.Name = result.title; var currencyService = EngineContext.Current.Resolve <ICurrencyService>(); product.Price = Round(currencyService.ConvertToPrimaryStoreCurrency(price * (1 + mappingSettings.AdditionalCostPercent / 100), currencyService.GetCurrencyByCode("USD")), -3); //if(result.marketingPrice == null) //{ // product.OldPrice = 0; //} //else //{ // if(result.marketingPrice.originalPrice == null) // product.OldPrice = 0; // else // product.OldPrice = Convert.ToDecimal(result.marketingPrice.originalPrice.value); //} product.ShortDescription = result.shortDescription; product.FullDescription = result.description; product.VisibleIndividually = true; product.AllowCustomerReviews = true; product.UnlimitedDownloads = true; product.MaxNumberOfDownloads = 10; product.RecurringCycleLength = 100; product.RecurringTotalCycles = 10; product.RentalPriceLength = 1; product.IsShipEnabled = true; product.NotifyAdminForQuantityBelow = 1; product.StockQuantity = 1000; product.OrderMaximumQuantity = 1000; product.OrderMinimumQuantity = 1; product.CreatedOnUtc = DateTime.UtcNow; product.UpdatedOnUtc = DateTime.UtcNow; _productService.InsertProduct(product); var productMapping = new ProductMapping(); productMapping.ProductSourceId = item.itemId; productMapping.ProductSourceLink = item.itemWebUrl; productMapping.SourceId = (int)Source.Ebay; productMapping.ProductId = product.Id; productMapping.Price = price; _productMappingService.InsertProduct(productMapping); // Thêm hình chính var imageMain = result.image.imageUrl.Split('?')[0]; System.Drawing.Image imageKey = EbayExtensions.DownloadImage(imageMain); if (imageKey != null) { var contentTypeMain = ""; var vendorPictureBinaryMain = EbayExtensions.ImageToByte(imageKey); var fileExtensionMain = Path.GetExtension(imageMain); if (!String.IsNullOrEmpty(fileExtensionMain)) { fileExtensionMain = fileExtensionMain.ToLowerInvariant(); } if (String.IsNullOrEmpty(contentTypeMain)) { switch (fileExtensionMain) { case ".bmp": contentTypeMain = MimeTypes.ImageBmp; break; case ".gif": contentTypeMain = MimeTypes.ImageGif; break; case ".jpeg": case ".jpg": case ".jpe": case ".jfif": case ".pjpeg": case ".pjp": contentTypeMain = MimeTypes.ImageJpeg; break; case ".png": contentTypeMain = MimeTypes.ImagePng; break; case ".tiff": case ".tif": contentTypeMain = MimeTypes.ImageTiff; break; default: break; } } var pictureMain = _pictureService.InsertPicture(vendorPictureBinaryMain, contentTypeMain, null); _productService.InsertProductPicture(new ProductPicture { PictureId = pictureMain.Id, ProductId = product.Id, DisplayOrder = 0, }); } int display = 1; if (result.additionalImages != null) { foreach (var ite in result.additionalImages) { var ima = ite.imageUrl.Split('?')[0]; System.Drawing.Image image = EbayExtensions.DownloadImage(ima); if (image != null) { var contentType = ""; var vendorPictureBinary = EbayExtensions.ImageToByte(image); var fileExtension = Path.GetExtension(ima); if (!String.IsNullOrEmpty(fileExtension)) { fileExtension = fileExtension.ToLowerInvariant(); } if (String.IsNullOrEmpty(contentType)) { switch (fileExtension) { case ".bmp": contentType = MimeTypes.ImageBmp; break; case ".gif": contentType = MimeTypes.ImageGif; break; case ".jpeg": case ".jpg": case ".jpe": case ".jfif": case ".pjpeg": case ".pjp": contentType = MimeTypes.ImageJpeg; break; case ".png": contentType = MimeTypes.ImagePng; break; case ".tiff": case ".tif": contentType = MimeTypes.ImageTiff; break; default: break; } } var picture = _pictureService.InsertPicture(vendorPictureBinary, contentType, null); _productService.InsertProductPicture(new ProductPicture { PictureId = picture.Id, ProductId = product.Id, DisplayOrder = display++, }); } } } //Product specification attributes if (result.localizedAspects != null) { foreach (var attributes in result.localizedAspects) { var getAttribute = _affiliateEbayService.GetSpecificationAttributeByName(attributes.name); var specificationAttribute = new SpecificationAttribute(); var specificationAttributeOption = new SpecificationAttributeOption(); if (getAttribute == null) { specificationAttribute.Name = attributes.name; specificationAttribute.DisplayOrder = 0; _specificationAttributeService.InsertSpecificationAttribute(specificationAttribute); specificationAttributeOption.DisplayOrder = 0; specificationAttributeOption.ColorSquaresRgb = null; specificationAttributeOption.Name = attributes.value; specificationAttributeOption.SpecificationAttributeId = specificationAttribute.Id; _specificationAttributeService.InsertSpecificationAttributeOption(specificationAttributeOption); } var productSpecificationAttribute = new ProductSpecificationAttribute(); productSpecificationAttribute.AttributeTypeId = (int)SpecificationAttributeType.CustomText; if (getAttribute == null) { productSpecificationAttribute.SpecificationAttributeOptionId = specificationAttributeOption.Id; } else { var options = _specificationAttributeService.GetSpecificationAttributeOptionsBySpecificationAttribute(getAttribute.Id); productSpecificationAttribute.SpecificationAttributeOptionId = options.FirstOrDefault().Id; } productSpecificationAttribute.ProductId = product.Id; productSpecificationAttribute.CustomValue = attributes.value; productSpecificationAttribute.AllowFiltering = false; productSpecificationAttribute.ShowOnProductPage = true; productSpecificationAttribute.DisplayOrder = 1; _specificationAttributeService.InsertProductSpecificationAttribute(productSpecificationAttribute); } } //categories SaveCategoryMappings(product, new List <int>() { model.CategoryId }); } } } } } } value = value + 200; temp = temp - 200; } } } SuccessNotification(_localizationService.GetResource("Admin.Catalog.Products.Added")); } else { ErrorNotification(_localizationService.GetResource("Plugins.AffiliateEbay.CallApi.Error")); } return(CallApi()); }
public virtual void PrepareSpecsFilters(IList <CategorySpecificationAtrribute> filterableSpecificationAttributes, ISpecificationAttributeService specificationAttributeService, IWebHelper webHelper, IWorkContext workContext, string baseUrl) { var allFilters = new List <SpecificationAttributeOptionFilter>(); foreach (var attr in filterableSpecificationAttributes) { var specificationAttributeOptions = specificationAttributeService.GetSpecificationAttributeOptionsBySpecificationAttribute(attr.SpecificationAttributeId); foreach (var sao in specificationAttributeOptions) { var sa = sao.SpecificationAttribute; if (sa != null) { allFilters.Add(new SpecificationAttributeOptionFilter { SpecificationAttributeId = sa.Id, SpecificationAttributeName = sa.GetLocalized(x => x.Name, workContext.WorkingLanguage.Id), SpecificationAttributeDisplayOrder = sa.DisplayOrder, SpecificationAttributeOptionId = sao.Id, SpecificationAttributeOptionName = sao.GetLocalized(x => x.Name, workContext.WorkingLanguage.Id), SpecificationAttributeOptionDisplayOrder = sao.DisplayOrder }); } } } //sort loaded options allFilters = allFilters.OrderBy(saof => saof.SpecificationAttributeDisplayOrder) .ThenBy(saof => saof.SpecificationAttributeName) .ThenBy(saof => saof.SpecificationAttributeOptionDisplayOrder) .ThenBy(saof => saof.SpecificationAttributeOptionName).ToList(); //get not filtered specification options var notFilteredOptions = new List <SpecificationAttributeOptionFilter>(); foreach (var saof in allFilters) { //else add it notFilteredOptions.Add(saof); } this.NotFilteredItems = notFilteredOptions.ToList().Select(x => { var item = new SpecificationFilterItem(); item.SpecificationAttributeName = x.SpecificationAttributeName; item.SpecificationAttributeOptionName = x.SpecificationAttributeOptionName; //filter URL var alreadyFilteredOptionIds = GetAlreadyFilteredSpecOptionIds(webHelper); if (!alreadyFilteredOptionIds.Contains(x.SpecificationAttributeOptionId)) { alreadyFilteredOptionIds.Add(x.SpecificationAttributeOptionId); } string newQueryParam = GenerateFilteredSpecQueryParam(alreadyFilteredOptionIds); string filterUrl = webHelper.ModifyQueryString(baseUrl, QUERYSTRINGPARAM + "=" + newQueryParam, null); filterUrl = ExcludeQueryStringParams(filterUrl, webHelper); item.FilterUrl = filterUrl; return(item); }).ToList(); }
public virtual void PrepareSpecsFilters(IList <int> alreadyFilteredSpecOptionIds, IList <CategorySpecificationAtrribute> filterableSpecificationAttributes, ISpecificationAttributeService specificationAttributeService, IWebHelper webHelper, IWorkContext workContext) { var allFilters = new List <SpecificationAttributeOptionFilter>(); foreach (var attr in filterableSpecificationAttributes) { var specificationAttributeOptions = specificationAttributeService.GetSpecificationAttributeOptionsBySpecificationAttribute(attr.SpecificationAttributeId); foreach (var sao in specificationAttributeOptions) { var sa = sao.SpecificationAttribute; if (sa != null) { allFilters.Add(new SpecificationAttributeOptionFilter { SpecificationAttributeId = sa.Id, SpecificationAttributeName = sa.GetLocalized(x => x.Name, workContext.WorkingLanguage.Id), SpecificationAttributeDisplayOrder = sa.DisplayOrder, SpecificationAttributeOptionId = sao.Id, SpecificationAttributeOptionName = sao.GetLocalized(x => x.Name, workContext.WorkingLanguage.Id), SpecificationAttributeOptionDisplayOrder = sao.DisplayOrder }); } } } //sort loaded options allFilters = allFilters.OrderBy(saof => saof.SpecificationAttributeDisplayOrder) .ThenBy(saof => saof.SpecificationAttributeName) .ThenBy(saof => saof.SpecificationAttributeOptionDisplayOrder) .ThenBy(saof => saof.SpecificationAttributeOptionName).ToList(); //get already filtered specification options var alreadyFilteredOptions = allFilters .Where(x => alreadyFilteredSpecOptionIds.Contains(x.SpecificationAttributeOptionId)) .Select(x => x) .ToList(); //get not filtered specification options var notFilteredOptions = new List <SpecificationAttributeOptionFilter>(); foreach (var saof in allFilters) { //do not add already filtered specification options //所有可筛选条件都显示出来 //if (alreadyFilteredOptions.FirstOrDefault(x => x.SpecificationAttributeId == saof.SpecificationAttributeId) != null) // continue; //else add it notFilteredOptions.Add(saof); } //prepare the model properties if (alreadyFilteredOptions.Count > 0 || notFilteredOptions.Count > 0) { this.Enabled = true; Dictionary <int, int> alreadyFilterAttribute = new Dictionary <int, int>(); this.AlreadyFilteredItems = alreadyFilteredOptions.ToList().Select(x => { var item = new SpecificationFilterItem(); item.SpecificationAttributeName = x.SpecificationAttributeName; item.SpecificationAttributeOptionName = x.SpecificationAttributeOptionName; if (!alreadyFilterAttribute.ContainsKey(x.SpecificationAttributeId)) { alreadyFilterAttribute.Add(x.SpecificationAttributeId, x.SpecificationAttributeOptionId); } var alreadyFilteredOptionIds = GetAlreadyFilteredSpecOptionIds(webHelper); if (alreadyFilteredOptionIds.Contains(x.SpecificationAttributeOptionId)) { alreadyFilteredOptionIds.Remove(x.SpecificationAttributeOptionId); } string newQueryParam = GenerateFilteredSpecQueryParam(alreadyFilteredOptionIds); string filterUrl = webHelper.ModifyQueryString(webHelper.GetThisPageUrl(true), QUERYSTRINGPARAM + "=" + newQueryParam, null); filterUrl = ExcludeQueryStringParams(filterUrl, webHelper); item.FilterUrl = filterUrl; return(item); }).ToList(); this.NotFilteredItems = notFilteredOptions.ToList().Select(x => { var item = new SpecificationFilterItem(); item.SpecificationAttributeName = x.SpecificationAttributeName; item.SpecificationAttributeOptionName = x.SpecificationAttributeOptionName; //filter URL List <int> alreadyFilteredOptionIds = new List <int>(); var _alreadyFilteredOptionIds = GetAlreadyFilteredSpecOptionIds(webHelper); foreach (int oid in _alreadyFilteredOptionIds) { int aid = 0; if (alreadyFilterAttribute.TryGetValue(x.SpecificationAttributeId, out aid) && aid == oid) { alreadyFilteredOptionIds.Add(x.SpecificationAttributeOptionId); } else { alreadyFilteredOptionIds.Add(oid); } } if (!alreadyFilteredOptionIds.Contains(x.SpecificationAttributeOptionId)) { alreadyFilteredOptionIds.Add(x.SpecificationAttributeOptionId); } if (alreadyFilterAttribute.ContainsValue(x.SpecificationAttributeOptionId)) { item.Filtered = false; } else { item.Filtered = true; } string newQueryParam = GenerateFilteredSpecQueryParam(alreadyFilteredOptionIds); string filterUrl = webHelper.ModifyQueryString(webHelper.GetThisPageUrl(true), QUERYSTRINGPARAM + "=" + newQueryParam, null); filterUrl = ExcludeQueryStringParams(filterUrl, webHelper); item.FilterUrl = filterUrl; return(item); }).ToList(); //remove filter URL string removeFilterUrl = webHelper.RemoveQueryString(webHelper.GetThisPageUrl(true), QUERYSTRINGPARAM); removeFilterUrl = ExcludeQueryStringParams(removeFilterUrl, webHelper); removeFilterUrl = webHelper.RemoveQueryString(removeFilterUrl, PriceRangeFilterModel.QUERYSTRINGPARAM); removeFilterUrl = ExcludeQueryStringParams(removeFilterUrl, webHelper); this.RemoveFilterUrl = removeFilterUrl; } else { this.Enabled = false; } }