/// <summary> /// Removes invalid facet values from a facet /// </summary> /// <param name="facet">The facet to clean</param> public static void Clean(this CommerceQueryFacet facet) { if (facet.FoundValues != null) { var items = facet.FoundValues.Where(v => string.IsNullOrEmpty(v.Name) || v.AggregateCount == 0); items.ToList().ForEach(v => facet.FoundValues.Remove(v)); } }
public static QueryFacet ToQueryFacet(this CommerceQueryFacet facet) { return(new QueryFacet { Name = facet.Name, DisplayName = facet.DisplayName, Values = facet.Values, FoundValues = facet.FoundValues, }); }
/// <summary> /// Checks to make sure a facet is valid for use /// </summary> /// <param name="facet">The facet to check</param> /// <returns>Returns True if valid and False otherwise</returns> public static bool IsValid(this CommerceQueryFacet facet) { facet.Clean(); if (facet.FoundValues.Count > 0) { return(true); } return(false); }
public void Initialize(CommerceQueryFacet commerceQueryFacet) { Assert.ArgumentNotNull(commerceQueryFacet, nameof(commerceQueryFacet)); this.Name = commerceQueryFacet.Name; this.DisplayName = commerceQueryFacet.DisplayName; this.Values = commerceQueryFacet.Values; var foundValues = new List <FacetValueResultModel>(); foreach (var facetValue in commerceQueryFacet.FoundValues) { var facetValueResultModel = new FacetValueResultModel(); facetValueResultModel.Initialize(facetValue); foundValues.Add(facetValueResultModel); } this.FoundValues = foundValues; }
protected virtual void UpdateOptionsWithFacets( IEnumerable <CommerceQueryFacet> facets, string valueQueryString, CommerceSearchOptions productSearchOptions) { Assert.ArgumentNotNull(productSearchOptions, nameof(productSearchOptions)); if (facets == null || !facets.Any()) { return; } if (!string.IsNullOrEmpty(valueQueryString)) { string str1 = HttpContext.Current.Server.UrlDecode(valueQueryString); if (str1 != null) { string str2 = str1; char[] chArray1 = new char[1] { '&' }; foreach (string str3 in str2.Split(chArray1)) { string[] strArray = str3.Split('='); string name = strArray[0]; CommerceQueryFacet commerceQueryFacet = facets.FirstOrDefault(item => item.Name.Equals(name, StringComparison.OrdinalIgnoreCase)); if (commerceQueryFacet != null) { string str4 = strArray[1]; char[] chArray2 = new char[1] { '|' }; foreach (string str5 in str4.Split(chArray2)) { commerceQueryFacet.Values.Add(str5); } } } } } productSearchOptions.FacetFields = facets; }