protected override object DoExecute(CommerceDataSourceContext context, ParsedGenericCommerceDataSourceSettings settings) { var cartId = 0; var user = context.HttpContext.GetMembershipUser(); if (user == null) { var sessionIdProvider = EngineContext.Current.Resolve <IShoppingCartSessionIdProvider>(); cartId = context.Site.Commerce().ShoppingCarts.GetCartIdBySessionId(sessionIdProvider.GetCurrentSessionId(true)); } else { cartId = context.Site.Commerce().ShoppingCarts.GetCartIdByCustomer(user.Email); } var query = context.Site.Commerce().ShoppingCarts.Query().ById(cartId); if (settings.Includes != null && settings.Includes.Count > 0) { foreach (var path in settings.Includes) { query.Include(path); } } return(query.FirstOrDefault()); }
private IRecommendationEngine GetRecommendationEngine(CommerceDataSourceContext context, ParsedGenericCommerceDataSourceSettings settings, out ISet <string> toIgnoreItems) { var filter = settings.Filters.Find(f => f.Name == "ByProduct"); if (filter != null) { var productId = (int)filter.GetParameterValue("ProductId"); toIgnoreItems = new HashSet <string> { productId.ToString() }; return(new FeatureBasedRecommendationEngine(new[] { new Feature(productId.ToString()) }, RelatedItemsProviders.GetProviders(context.Instance))); } else { toIgnoreItems = new HashSet <string>(); foreach (var behaviorType in BehaviorTypes.All()) { var store = BehaviorStores.Get(context.Instance, behaviorType); foreach (var itemId in store.GetItemsUserHadBehaviorsOn(context.HttpContext.EnsureVisitorUniqueId(), 10000)) { toIgnoreItems.Add(itemId); } } return(RecommendationEngines.GetEngines(context.Instance)); } }
protected override object DoExecute(CommerceDataSourceContext context, ParsedGenericCommerceDataSourceSettings settings) { var cartId = 0; var user = context.HttpContext.GetMembershipUser(); if (user == null) { var sessionIdProvider = EngineContext.Current.Resolve<IShoppingCartSessionIdProvider>(); cartId = context.Site.Commerce().ShoppingCarts.GetCartIdBySessionId(sessionIdProvider.GetCurrentSessionId(true)); } else { cartId = context.Site.Commerce().ShoppingCarts.GetCartIdByCustomer(user.Email); } var query = context.Site.Commerce().ShoppingCarts.Query().ById(cartId); if (settings.Includes != null && settings.Includes.Count > 0) { foreach (var path in settings.Includes) { query.Include(path); } } return query.FirstOrDefault(); }
public ParsedFilter Parse(FilterDescription definition, CommerceDataSourceContext context) { var paramValues = new Dictionary <string, object>(StringComparer.OrdinalIgnoreCase); foreach (var paramDef in definition.Parameters) { var param = ParameterValues.Find(p => p.ParameterName.Equals(paramDef.Name, StringComparison.OrdinalIgnoreCase)); // Parameter is required but it's missing in data source settings (might cause by code changes). Parse failed. if (paramDef.Required && param == null) { return(null); } var strParamValue = ParameterizedFieldValue.GetFieldValue(param.ParameterValue, context.ValueProvider); // Parameter is required but it's missing in current context. Parse failed. if (paramDef.Required && strParamValue == null) { return(null); } var paramValue = StringConvert.ToObject(strParamValue, paramDef.ValueType); paramValues.Add(paramDef.Name, paramValue); } return(new ParsedFilter(definition.Name) { ParameterValues = paramValues }); }
protected override object DoExecute(CommerceDataSourceContext context, ParsedGenericCommerceDataSourceSettings settings) { int? currentCategoryId = null; var productFilter = settings.Filters.Find(f => f.Name == "ByCurrentProduct"); if (productFilter != null) { var productId = (int)productFilter.ParameterValues["CurrentProductId"]; var product = context.Site.Commerce().Products.Query().ById(productId).Include(p => p.Categories).FirstOrDefault(); if (product != null) { var category = product.Categories.FirstOrDefault(); if (category != null) { currentCategoryId = category.Id; } } } if (currentCategoryId == null) { var categoryFilter = settings.Filters.Find(f => f.Name == "ByCurrentCategory"); if (categoryFilter != null) { currentCategoryId = (int)categoryFilter.ParameterValues["CurrentCategoryId"]; } } if (currentCategoryId == null) { return null; } return context.Site.Commerce().Categories.Breadcrumb(currentCategoryId.Value); }
public ParsedFilter Parse(FilterDescription definition, CommerceDataSourceContext context) { var paramValues = new Dictionary<string, object>(StringComparer.OrdinalIgnoreCase); foreach (var paramDef in definition.Parameters) { var param = ParameterValues.Find(p => p.ParameterName.Equals(paramDef.Name, StringComparison.OrdinalIgnoreCase)); // Parameter is required but it's missing in data source settings (might cause by code changes). Parse failed. if (paramDef.Required && param == null) { return null; } var strParamValue = ParameterizedFieldValue.GetFieldValue(param.ParameterValue, context.ValueProvider); // Parameter is required but it's missing in current context. Parse failed. if (paramDef.Required && strParamValue == null) { return null; } var paramValue = StringConvert.ToObject(strParamValue, paramDef.ValueType); paramValues.Add(paramDef.Name, paramValue); } return new ParsedFilter(definition.Name) { ParameterValues = paramValues }; }
protected bool TryParseSettings(CommerceDataSourceContext context, out ParsedGenericCommerceDataSourceSettings settings) { if (Settings == null) { settings = null; return(false); } settings = new ParsedGenericCommerceDataSourceSettings(); // Filters if (Settings.Filters != null && Settings.Filters.Count > 0) { foreach (var savedFilter in Settings.Filters) { var filterDefinition = Filters.FirstOrDefault(f => f.Name == savedFilter.Name); if (filterDefinition == null) { continue; } var parsedFilter = savedFilter.Parse(filterDefinition, context); if (parsedFilter != null) { settings.Filters.Add(parsedFilter); } else if (savedFilter.Required) { // If filter is required but it's not presented in current context. Parse failed. settings = null; return(false); } } } settings.TakeOperation = Settings.TakeOperation; // Pagination settings.EnablePaging = Settings.EnablePaging; if (settings.EnablePaging) { settings.PageSize = context.ResolveFieldValue <int?>(Settings.PageSize, null); settings.PageNumber = context.ResolveFieldValue <int?>(Settings.PageNumber, null); } settings.Top = context.ResolveFieldValue <int?>(Settings.Top, null); // Includes if (Settings.Includes != null) { settings.Includes = Settings.Includes.ToList(); } return(true); }
public object Execute(CommerceDataSourceContext context) { ParsedGenericCommerceDataSourceSettings settings; if (TryParseSettings(context, out settings)) { return(DoExecute(context, settings)); } return(null); }
private int EvaluatePageSize(CommerceDataSourceContext context) { var pageSize = ParameterizedFieldValue.GetFieldValue(PageSize, context.ValueProvider); if (String.IsNullOrEmpty(pageSize)) { return(60); } return(Convert.ToInt32(pageSize)); }
private IList <Filter> GetFacetFilters(CommerceDataSourceContext context) { var facetFilters = new List <Filter>(); foreach (var facet in Facets) { // Ignore if the filter is already defined if (Filters != null && Filters.Any(f => f.Name == facet.Name)) { continue; } var value = context.ValueProvider.GetValue(facet.Name); if (value != null && !String.IsNullOrEmpty(value.AttemptedValue)) { var filterValue = value.AttemptedValue; var filter = new Filter { Name = facet.Name, Fields = facet.Field, FieldValue = filterValue }; if (facet.Ranges != null && facet.Ranges.Count > 0) { // If it's a range facet, then try to find range by label. // If nothing was found, then the range label might be empty, so parse it with range syntax. var range = facet.Ranges.FirstOrDefault(r => !String.IsNullOrEmpty(r.Label) && r.Label.Equals(filterValue)); if (range == null) { range = FacetRange.Parse(null, filterValue); } filter.UseRangeFiltering = true; filter.FromValue = range.FromValue.ToString(); filter.ToValue = range.ToValue.ToString(); filter.FromInclusive = range.FromInclusive; filter.ToInclusive = range.ToInclusive; } facetFilters.Add(filter); } } return(facetFilters); }
protected override object DoExecute(CommerceDataSourceContext context, ParsedGenericCommerceDataSourceSettings settings) { var query = Query(context.Site.Commerce()); // Filters query = ApplyFilters(query, settings.Filters, context); // Sorting if (!String.IsNullOrEmpty(settings.SortField)) { query.Sorts.Add(new Sort(settings.SortField, settings.SortDirection)); } // Includes if (settings.Includes != null && settings.Includes.Count > 0) { foreach (var path in settings.Includes) { query.Include(path); } } if (settings.TakeOperation == TakeOperation.First) { return(query.FirstOrDefault()); } // Pagination if (settings.EnablePaging) { var pageSize = settings.PageSize.GetValueOrDefault(50); var pageNumber = settings.PageNumber.GetValueOrDefault(1); query.Skip((pageNumber - 1) * pageSize).Take(pageSize); } else { if (settings.Top != null && settings.Top.Value > 0) { query.Take(settings.Top.Value); } } return(query.ToList()); }
private int EvaluatePageNumber(CommerceDataSourceContext context) { var pageNumber = ParameterizedFieldValue.GetFieldValue(PageNumber, context.ValueProvider); if (String.IsNullOrEmpty(pageNumber)) { return(1); } var page = Convert.ToInt32(pageNumber); if (page < 1) { page = 1; } return(page); }
protected override object DoExecute(CommerceDataSourceContext context, ParsedGenericCommerceDataSourceSettings settings) { var user = context.HttpContext.GetMembershipUser(); if (user == null) { return null; } var query = context.Site.Commerce().Customers.Query().ByEmail(user.Email); if (settings.Includes != null) { foreach (var include in settings.Includes) { query.Include(include); } } return query.FirstOrDefault(); }
protected override object DoExecute(CommerceDataSourceContext context, ParsedGenericCommerceDataSourceSettings settings) { var user = context.HttpContext.GetMembershipUser(); if (user == null) { return(null); } var query = context.Site.Commerce().Customers.Query().ByEmail(user.Email); if (settings.Includes != null) { foreach (var include in settings.Includes) { query.Include(include); } } return(query.FirstOrDefault()); }
protected override object DoExecute(CommerceDataSourceContext context, ParsedGenericCommerceDataSourceSettings settings) { int?currentCategoryId = null; var productFilter = settings.Filters.Find(f => f.Name == "ByCurrentProduct"); if (productFilter != null) { var productId = (int)productFilter.ParameterValues["CurrentProductId"]; var product = context.Site.Commerce().Products.Query().ById(productId).Include(p => p.Categories).FirstOrDefault(); if (product != null) { var category = product.Categories.FirstOrDefault(); if (category != null) { currentCategoryId = category.Id; } } } if (currentCategoryId == null) { var categoryFilter = settings.Filters.Find(f => f.Name == "ByCurrentCategory"); if (categoryFilter != null) { currentCategoryId = (int)categoryFilter.ParameterValues["CurrentCategoryId"]; } } if (currentCategoryId == null) { return(null); } return(context.Site.Commerce().Categories.Breadcrumb(currentCategoryId.Value)); }
public override IDictionary<string, object> GetDefinitions(CommerceDataSourceContext context) { return DataSourceDefinitionHelper.GetDefinitions(typeof(Kooboo.Commerce.Api.Products.Product)); }
protected override object DoExecute(CommerceDataSourceContext context, ParsedGenericCommerceDataSourceSettings settings) { var productIdFilter = settings.Filters.Find(f => f.Name == "ByProduct"); if (productIdFilter == null) { return(null); } var productId = productIdFilter.GetParameterValue("productId"); if (productId == null) { return(null); } var instanceName = context.Site.GetCommerceInstanceName(); if (String.IsNullOrWhiteSpace(instanceName)) { throw new InvalidOperationException("Commerce instance name is not configured in CMS."); } using (var instance = _instanceManager.GetInstance(instanceName)) using (var scope = Scope.Begin(instance)) { var accessories = ProductAccessoryService().GetAccessories((int)productId); if (!String.IsNullOrEmpty(settings.SortField) && settings.SortField == "Rank") { if (settings.SortDirection == SortDirection.Asc) { accessories = accessories.OrderBy(r => r.Rank).ToList(); } else { accessories = accessories.OrderByDescending(r => r.Rank).ToList(); } } if (settings.Top != null) { accessories = accessories.Take(settings.Top.Value).ToList(); } var accessoryIds = accessories.Select(x => x.ProductId).ToArray(); var result = new List <Kooboo.Commerce.Api.Products.Product>(); foreach (var id in accessoryIds) { // TODO: should not use resolve, use ApiService instead var model = EngineContext.Current.Resolve <Kooboo.Commerce.Api.Products.IProductApi>() .Query() .ById(id) .Include("PriceList") .Include("Images") .Include("Brand") .FirstOrDefault(); if (model != null) { result.Add(model); } } return(result); } }
public override IDictionary <string, object> GetDefinitions(CommerceDataSourceContext context) { return(DataSourceDefinitionHelper.GetDefinitions(typeof(Kooboo.Commerce.Api.Products.Product))); }
private List<Filter> ParseFilters(CommerceDataSourceContext context) { return Filters.Select(f => f.Parse(context.ValueProvider)).ToList(); }
public override IDictionary <string, object> GetDefinitions(CommerceDataSourceContext context) { return(DataSourceDefinitionHelper.GetDefinitions(typeof(T))); }
private IRecommendationEngine GetRecommendationEngine(CommerceDataSourceContext context, ParsedGenericCommerceDataSourceSettings settings, out ISet<string> toIgnoreItems) { var filter = settings.Filters.Find(f => f.Name == "ByProduct"); if (filter != null) { var productId = (int)filter.GetParameterValue("ProductId"); toIgnoreItems = new HashSet<string> { productId.ToString() }; return new FeatureBasedRecommendationEngine(new[] { new Feature(productId.ToString()) }, RelatedItemsProviders.GetProviders(context.Instance)); } else { toIgnoreItems = new HashSet<string>(); foreach (var behaviorType in BehaviorTypes.All()) { var store = BehaviorStores.Get(context.Instance, behaviorType); foreach (var itemId in store.GetItemsUserHadBehaviorsOn(context.HttpContext.EnsureVisitorUniqueId(), 10000)) { toIgnoreItems.Add(itemId); } } return RecommendationEngines.GetEngines(context.Instance); } }
protected override object DoExecute(CommerceDataSourceContext context, ParsedGenericCommerceDataSourceSettings settings) { var productIdFilter = settings.Filters.Find(f => f.Name == "ByProduct"); if (productIdFilter == null) { return null; } var productId = productIdFilter.GetParameterValue("productId"); if (productId == null) { return null; } var instanceName = context.Site.GetCommerceInstanceName(); if (String.IsNullOrWhiteSpace(instanceName)) throw new InvalidOperationException("Commerce instance name is not configured in CMS."); using (var instance = _instanceManager.GetInstance(instanceName)) using (var scope = Scope.Begin(instance)) { var accessories = ProductAccessoryService().GetAccessories((int)productId); if (!String.IsNullOrEmpty(settings.SortField) && settings.SortField == "Rank") { if (settings.SortDirection == SortDirection.Asc) { accessories = accessories.OrderBy(r => r.Rank).ToList(); } else { accessories = accessories.OrderByDescending(r => r.Rank).ToList(); } } if (settings.Top != null) { accessories = accessories.Take(settings.Top.Value).ToList(); } var accessoryIds = accessories.Select(x => x.ProductId).ToArray(); var result = new List<Kooboo.Commerce.Api.Products.Product>(); foreach (var id in accessoryIds) { // TODO: should not use resolve, use ApiService instead var model = EngineContext.Current.Resolve<Kooboo.Commerce.Api.Products.IProductApi>() .Query() .ById(id) .Include("PriceList") .Include("Images") .Include("Brand") .FirstOrDefault(); if (model != null) { result.Add(model); } } return result; } }
protected abstract object DoExecute(CommerceDataSourceContext context, ParsedGenericCommerceDataSourceSettings settings);
public object Execute(CommerceDataSourceContext context) { ParsedGenericCommerceDataSourceSettings settings; if (TryParseSettings(context, out settings)) { return DoExecute(context, settings); } return null; }
protected bool TryParseSettings(CommerceDataSourceContext context, out ParsedGenericCommerceDataSourceSettings settings) { if (Settings == null) { settings = null; return false; } settings = new ParsedGenericCommerceDataSourceSettings(); // Filters if (Settings.Filters != null && Settings.Filters.Count > 0) { foreach (var savedFilter in Settings.Filters) { var filterDefinition = Filters.FirstOrDefault(f => f.Name == savedFilter.Name); if (filterDefinition == null) { continue; } var parsedFilter = savedFilter.Parse(filterDefinition, context); if (parsedFilter != null) { settings.Filters.Add(parsedFilter); } else if (savedFilter.Required) { // If filter is required but it's not presented in current context. Parse failed. settings = null; return false; } } } settings.TakeOperation = Settings.TakeOperation; // Pagination settings.EnablePaging = Settings.EnablePaging; if (settings.EnablePaging) { settings.PageSize = context.ResolveFieldValue<int?>(Settings.PageSize, null); settings.PageNumber = context.ResolveFieldValue<int?>(Settings.PageNumber, null); } settings.Top = context.ResolveFieldValue<int?>(Settings.Top, null); // Includes if (Settings.Includes != null) { settings.Includes = Settings.Includes.ToList(); } return true; }
private List <Filter> ParseFilters(CommerceDataSourceContext context) { return(Filters.Select(f => f.Parse(context.ValueProvider)).ToList()); }
private int EvaluatePageNumber(CommerceDataSourceContext context) { var pageNumber = ParameterizedFieldValue.GetFieldValue(PageNumber, context.ValueProvider); if (String.IsNullOrEmpty(pageNumber)) { return 1; } var page = Convert.ToInt32(pageNumber); if (page < 1) { page = 1; } return page; }
protected virtual Query <T> ApplyFilters(Query <T> query, IList <ParsedFilter> filters, CommerceDataSourceContext context) { if (filters == null) { return(query); } foreach (var filter in filters) { query.Filters.Add(new QueryFilter(filter.Name, filter.ParameterValues)); } return(query); }
public object Execute(CommerceDataSourceContext context) { var culture = CultureInfo.InvariantCulture; if (!String.IsNullOrEmpty(context.Site.Culture)) { var languageStore = LanguageStores.Get(context.Instance); if (languageStore.Exists(context.Site.Culture)) { culture = CultureInfo.GetCultureInfo(context.Site.Culture); } } var store = IndexStores.Get <ProductModel>(context.Instance, culture); var query = store.Query(); // Apply defined filters if (Filters != null) { query = query.ApplyFilters(ParseFilters(context), culture); } // Apply implicit facet filters repsented in url query IList <Filter> facetFilters = null; if (IncludeFacets && Facets != null && Facets.Count > 0) { facetFilters = GetFacetFilters(context); if (facetFilters.Count > 0) { query = query.ApplyFilters(facetFilters, culture); } } // Apply sorting var sortField = ParameterizedFieldValue.GetFieldValue(SortField, context.ValueProvider); if (!String.IsNullOrEmpty(sortField)) { query.AddOrderBy(sortField); } // Execute result var result = new ProductSearchResult(); var pagination = query.Paginate(EvaluatePageNumber(context) - 1, EvaluatePageSize(context)); result.Total = pagination.TotalItems; result.Products = ToProducts(pagination.Cast <ProductModel>().ToList(), context.Site.Commerce()); // Get facets if (IncludeFacets && Facets != null && Facets.Count > 0) { result.Facets = query.ToFacets(Facets); // Generate facet urls var url = HttpContext.Current.Request.RawUrl; CategoryTree localizedCategoryTree = null; foreach (var facetResult in result.Facets) { // Categories are in tree structure, and all level of categories of a product are indexed for seaier search. // If Category facet is not presented in url query, we should only return the ROOT level categories. // If Category facet is presented in url query, we should only return it's children categories. // Otherwise there'll be too many category results. if (facetResult.Field == FacetDefinition.Category.Field) { if (localizedCategoryTree == null) { localizedCategoryTree = CategoryTree.Get(context.Instance).Localize(culture, "Name"); } var filter = facetFilters.FirstOrDefault(f => f.Name == FacetDefinition.Category.Name); if (filter != null) { var category = localizedCategoryTree.Desendants().FirstOrDefault(c => c.Name == filter.FieldValue); foreach (var value in facetResult.Values.ToList()) { if (!category.Children.Any(c => c.Name == value.Term)) { facetResult.Values.Remove(value); } } } else { foreach (var value in facetResult.Values.ToList()) { if (!localizedCategoryTree.Categories.Any(c => c.Name == value.Term)) { facetResult.Values.Remove(value); } } } } foreach (var value in facetResult.Values) { var paramName = facetResult.Name; value.Url = UrlUtility.RemoveQuery(url, paramName); value.Url = UrlUtility.AddQueryParam(value.Url, paramName, value.Term); } } } return(result); }
private int EvaluatePageSize(CommerceDataSourceContext context) { var pageSize = ParameterizedFieldValue.GetFieldValue(PageSize, context.ValueProvider); if (String.IsNullOrEmpty(pageSize)) { return 60; } return Convert.ToInt32(pageSize); }
public object Execute(CommerceDataSourceContext context) { var culture = CultureInfo.InvariantCulture; if (!String.IsNullOrEmpty(context.Site.Culture)) { var languageStore = LanguageStores.Get(context.Instance); if (languageStore.Exists(context.Site.Culture)) { culture = CultureInfo.GetCultureInfo(context.Site.Culture); } } var store = IndexStores.Get<ProductModel>(context.Instance, culture); var query = store.Query(); // Apply defined filters if (Filters != null) { query = query.ApplyFilters(ParseFilters(context), culture); } // Apply implicit facet filters repsented in url query IList<Filter> facetFilters = null; if (IncludeFacets && Facets != null && Facets.Count > 0) { facetFilters = GetFacetFilters(context); if (facetFilters.Count > 0) { query = query.ApplyFilters(facetFilters, culture); } } // Apply sorting var sortField = ParameterizedFieldValue.GetFieldValue(SortField, context.ValueProvider); if (!String.IsNullOrEmpty(sortField)) { query.AddOrderBy(sortField); } // Execute result var result = new ProductSearchResult(); var pagination = query.Paginate(EvaluatePageNumber(context) - 1, EvaluatePageSize(context)); result.Total = pagination.TotalItems; result.Products = ToProducts(pagination.Cast<ProductModel>().ToList(), context.Site.Commerce()); // Get facets if (IncludeFacets && Facets != null && Facets.Count > 0) { result.Facets = query.ToFacets(Facets); // Generate facet urls var url = HttpContext.Current.Request.RawUrl; CategoryTree localizedCategoryTree = null; foreach (var facetResult in result.Facets) { // Categories are in tree structure, and all level of categories of a product are indexed for seaier search. // If Category facet is not presented in url query, we should only return the ROOT level categories. // If Category facet is presented in url query, we should only return it's children categories. // Otherwise there'll be too many category results. if (facetResult.Field == FacetDefinition.Category.Field) { if (localizedCategoryTree == null) { localizedCategoryTree = CategoryTree.Get(context.Instance).Localize(culture, "Name"); } var filter = facetFilters.FirstOrDefault(f => f.Name == FacetDefinition.Category.Name); if (filter != null) { var category = localizedCategoryTree.Desendants().FirstOrDefault(c => c.Name == filter.FieldValue); foreach (var value in facetResult.Values.ToList()) { if (!category.Children.Any(c => c.Name == value.Term)) { facetResult.Values.Remove(value); } } } else { foreach (var value in facetResult.Values.ToList()) { if (!localizedCategoryTree.Categories.Any(c => c.Name == value.Term)) { facetResult.Values.Remove(value); } } } } foreach (var value in facetResult.Values) { var paramName = facetResult.Name; value.Url = UrlUtility.RemoveQuery(url, paramName); value.Url = UrlUtility.AddQueryParam(value.Url, paramName, value.Term); } } } return result; }
private IList<Filter> GetFacetFilters(CommerceDataSourceContext context) { var facetFilters = new List<Filter>(); foreach (var facet in Facets) { // Ignore if the filter is already defined if (Filters != null && Filters.Any(f => f.Name == facet.Name)) { continue; } var value = context.ValueProvider.GetValue(facet.Name); if (value != null && !String.IsNullOrEmpty(value.AttemptedValue)) { var filterValue = value.AttemptedValue; var filter = new Filter { Name = facet.Name, Fields = facet.Field, FieldValue = filterValue }; if (facet.Ranges != null && facet.Ranges.Count > 0) { // If it's a range facet, then try to find range by label. // If nothing was found, then the range label might be empty, so parse it with range syntax. var range = facet.Ranges.FirstOrDefault(r => !String.IsNullOrEmpty(r.Label) && r.Label.Equals(filterValue)); if (range == null) { range = FacetRange.Parse(null, filterValue); } filter.UseRangeFiltering = true; filter.FromValue = range.FromValue.ToString(); filter.ToValue = range.ToValue.ToString(); filter.FromInclusive = range.FromInclusive; filter.ToInclusive = range.ToInclusive; } facetFilters.Add(filter); } } return facetFilters; }
public virtual IDictionary <string, object> GetDefinitions(CommerceDataSourceContext context) { return(new Dictionary <string, object>()); }
public IDictionary<string, object> GetDefinitions(CommerceDataSourceContext context) { return new Dictionary<string, object>(); }