private string CreateFilter(List <FacetGroup> facets, PositionDistanceSearch geoSearch = null) { if (facets != null) { var query = new StringBuilder(); var groupCount = facets.Count(e => e.FacetValues.Any(f => f.IsSelected ?? false)); var groupCounter = 0; foreach (var facet in facets) { var selectedValues = facet.FacetValues.Where(e => e.IsSelected ?? false).ToArray(); if (selectedValues.Length > 0) { int counter = 0; query.Append("("); foreach (var facetSelection in selectedValues) { query.Append($"{facet.FacetName} eq '{facetSelection.FacetValue}'"); if (counter < selectedValues.Length - 1) { query.Append(" or "); } counter++; } query.Append(")"); if (groupCounter < groupCount - 1) { query.Append(" and "); } groupCounter++; } } return(query.ToString()); } return(null); }
public async Task <SearchResponse> ExecuteSearch(string query, List <FacetGroup> facets = null, PositionDistanceSearch geoSearch = null) { //TO DO - Place holder for search return(new SearchResponse()); }