private static string CreateGeoDistanceFilter(GeoDistanceFilter geoDistanceFilter, IList <Field> availableFields) { string result; var availableField = availableFields.Get(geoDistanceFilter.FieldName); if (availableField != null) { var distance = AzureSearchHelper.GetGeoDistanceExpression(availableField.Name, geoDistanceFilter.Location); result = string.Format(CultureInfo.InvariantCulture, "{0} le {1}", distance, geoDistanceFilter.Distance); } else { result = AzureSearchHelper.NonExistentFieldFilter; } return(result); }
private static string GetSortingField(SortingField sortingField, IList <Field> availableFields) { string result = null; var availableField = availableFields.Get(sortingField.FieldName); if (availableField != null) { var geoSorting = sortingField as GeoDistanceSortingField; var fieldName = geoSorting == null ? availableField.Name : AzureSearchHelper.GetGeoDistanceExpression(availableField.Name, geoSorting.Location); result = string.Join(" ", fieldName, sortingField.IsDescending ? "desc" : "asc"); } else if (sortingField.FieldName == "score") { result = string.Join(" ", "search.score()", sortingField.IsDescending ? "desc" : "asc"); } return(result); }