public void RegisterQueryValueConverter <T>(TryConvertValueForQueryDelegate <T> converter, SortOptions defaultSortOption = SortOptions.String, bool usesRangeField = false) { TryConvertValueForQueryDelegate <object> actual = (string name, object value, QueryValueConvertionType convertionType, out string strValue) => { if (value is T) { return(converter(name, (T)value, convertionType, out strValue)); } strValue = null; return(false); }; int index; for (index = 0; index < listOfQueryValueConverters.Count; index++) { var entry = listOfQueryValueConverters[index]; if (entry.Item1.IsAssignableFrom(typeof(T))) { break; } } listOfQueryValueConverters.Insert(index, Tuple.Create(typeof(T), actual)); if (defaultSortOption != SortOptions.String) { customDefaultSortOptions.Add(typeof(T).Name, defaultSortOption); } if (usesRangeField) { customRangeTypes.Add(typeof(T)); } }
public void RegisterQueryValueConverter <T>(TryConvertValueForQueryDelegate <T> converter) { TryConvertValueForQueryDelegate <object> actual = (string name, object value, QueryValueConvertionType convertionType, out string strValue) => { if (value is T) { return(converter(name, (T)value, convertionType, out strValue)); } strValue = null; return(false); }; int index; for (index = 0; index < listOfQueryValueConverters.Count; index++) { var entry = listOfQueryValueConverters[index]; if (entry.Item1.IsAssignableFrom(typeof(T))) { break; } } listOfQueryValueConverters.Insert(index, Tuple.Create(typeof(T), actual)); }