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);
        }