Esempio n. 1
0
        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));
            }
        }
Esempio n. 2
0
        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));
        }