private Algolia.Search.Query getFilteredProductQuery(Algolia.Search.Query query, IProductFilter filter, params string[] excludeFacets ) { if (filter != null) { List<string> facets = new List<string>(); facets.Add("status:"+(int)ProductStatus.Approved); facets.Add("notVisible:false"); facets.Add("isBlocked:false"); if (filter.Category != null && !excludeFacets.Contains("categoryID")) { facets.Add("categoryID:"+filter.Category.ID); } if (filter.Subcategory != null && !excludeFacets.Contains("subcategoryID")) { facets.Add("subcategoryID:"+filter.Subcategory.ID); } if (filter.Country != null && !excludeFacets.Contains("countryID")) { facets.Add("countryID:"+filter.Country.ID); } if (filter.City != null && !excludeFacets.Contains("cityID")) { facets.Add("cityID:"+filter.City.ID); } if (facets.Count > 0) query.SetFacetFilters(facets); if (filter.Tags != null && filter.Tags.Count > 0) { query.SetTagFilters(string.Join(",", filter.Tags)); } List<string> numericFilters = new List<string>(); numericFilters.Add("status=" + (int)ProductStatus.Approved); if (filter.StartPrice != null) { numericFilters.Add("price>=" + filter.StartPrice); } if (filter.EndPrice != null) { numericFilters.Add("price<=" + filter.EndPrice); } if (numericFilters.Count > 0) query.SetNumericFilters(string.Join(",", numericFilters)); } return query; }
private Algolia.Search.Query getFilteredStoreQuery(Algolia.Search.Query query, IStoreFilter filter, params string[] excludeFacets) { if (filter != null) { List<string> facets = new List<string>(); facets.Add("isBlocked:false"); if (filter.Category != null && !excludeFacets.Contains("categoryID")) { facets.Add("categoryID:"+filter.Category.ID); } if (filter.Country != null && !excludeFacets.Contains("countryID")) { facets.Add("countryID:"+filter.Country.ID); } if (filter.City != null && !excludeFacets.Contains("cityID")) { facets.Add("cityID:"+filter.City.ID); } if (facets.Count > 0) query.SetFacetFilters(facets); if (filter.Tags != null && filter.Tags.Count > 0) { query.SetTagFilters(string.Join(",", filter.Tags)); } } return query; }