TryGetFilterType() публичный статический Метод

public static TryGetFilterType ( Type type ) : FilterType?
type System.Type
Результат FilterType?
Пример #1
0
        private static IEnumerable <QueryToken> AggregateTokens(QueryToken token, QueryDescription qd)
        {
            if (token == null)
            {
                yield return(new AggregateToken(AggregateFunction.Count, qd.QueryName));
            }
            else if (!(token is AggregateToken))
            {
                FilterType?ft = QueryUtils.TryGetFilterType(token.Type);

                if (ft == FilterType.Integer || ft == FilterType.Decimal || ft == FilterType.Boolean)
                {
                    yield return(new AggregateToken(AggregateFunction.Average, token));

                    yield return(new AggregateToken(AggregateFunction.Sum, token));

                    yield return(new AggregateToken(AggregateFunction.Min, token));

                    yield return(new AggregateToken(AggregateFunction.Max, token));
                }
                else if (ft == FilterType.DateTime) /*ft == FilterType.String || */
                {
                    yield return(new AggregateToken(AggregateFunction.Min, token));

                    yield return(new AggregateToken(AggregateFunction.Max, token));
                }
            }
        }
Пример #2
0
        private static IEnumerable <QueryToken> AggregateTokens(QueryToken token, QueryDescription qd)
        {
            if (token == null)
            {
                yield return(new AggregateToken(AggregateFunction.Count, qd.QueryName));
            }
            else if (!(token is AggregateToken))
            {
                FilterType?ft = QueryUtils.TryGetFilterType(token.Type);

                if (ft == FilterType.Integer || ft == FilterType.Decimal || ft == FilterType.Boolean)
                {
                    yield return(new AggregateToken(AggregateFunction.Average, token));

                    yield return(new AggregateToken(AggregateFunction.Sum, token));

                    yield return(new AggregateToken(AggregateFunction.Min, token));

                    yield return(new AggregateToken(AggregateFunction.Max, token));
                }
                else if (ft == FilterType.DateTime) /*ft == FilterType.String || */
                {
                    yield return(new AggregateToken(AggregateFunction.Min, token));

                    yield return(new AggregateToken(AggregateFunction.Max, token));
                }

                if (ft != null)
                {
                    yield return(new AggregateToken(AggregateFunction.Count, token, FilterOperation.DistinctTo, null));

                    yield return(new AggregateToken(AggregateFunction.Count, token, FilterOperation.EqualTo, null));
                }

                if (token.IsGroupable)
                {
                    yield return(new AggregateToken(AggregateFunction.Count, token, distinct: true));
                }

                if (ft == FilterType.Enum)
                {
                    foreach (var v in Enum.GetValues(token.Type.UnNullify()))
                    {
                        yield return(new AggregateToken(AggregateFunction.Count, token, FilterOperation.EqualTo, v));

                        yield return(new AggregateToken(AggregateFunction.Count, token, FilterOperation.DistinctTo, v));
                    }
                }

                if (ft == FilterType.Boolean)
                {
                    yield return(new AggregateToken(AggregateFunction.Count, token, FilterOperation.EqualTo, true));

                    yield return(new AggregateToken(AggregateFunction.Count, token, FilterOperation.EqualTo, false));
                }
            }
        }