public static string GetContainsFilterExpression(Field availableField, IEnumerable <string> rawValues) { var azureFieldName = availableField.Name; var values = rawValues.Where(v => !string.IsNullOrEmpty(v)).Select(GetStringFilterValue).ToArray(); return(AzureSearchHelper.JoinNonEmptyStrings(" or ", true, values.Select(v => $"{azureFieldName}/any(v: v eq {v})").ToArray())); }
private static string GetEqualsFilterExpression(Field availableField, IEnumerable <string> rawValues) { var azureFieldName = availableField.Name; var values = rawValues.Where(v => !string.IsNullOrEmpty(v)).Select(v => GetFilterValue(availableField, v)).ToArray(); return(AzureSearchHelper.JoinNonEmptyStrings(" or ", true, values.Select(v => $"{azureFieldName} eq {v}").ToArray())); }
private static string CreateOrFilter(OrFilter orFilter, IList <Field> availableFields) { string result = null; if (orFilter.ChildFilters != null) { var childExpressions = orFilter.ChildFilters.Select(q => GetFilterExpressionRecursive(q, availableFields)).ToArray(); result = AzureSearchHelper.JoinNonEmptyStrings(" or ", true, childExpressions); } return(result); }
private static string CreateRangeFilter(RangeFilter rangeFilter, IList <Field> availableFields) { string result; var availableField = availableFields.Get(rangeFilter.FieldName); if (availableField != null) { var expressions = rangeFilter.Values .Select(v => GetRangeFilterValueExpression(v, availableField.Name)) .Where(e => !string.IsNullOrEmpty(e)) .ToArray(); result = AzureSearchHelper.JoinNonEmptyStrings(" or ", true, expressions); } else { result = AzureSearchHelper.NonExistentFieldFilter; } return(result); }