/// <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);
        }
Exemple #4
0
        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;
 }