public static AggregateResultCollection Aggregate(this IQueryable source, IEnumerable<AggregateFunction> aggregateFunctions) { var functions = aggregateFunctions.ToList(); if (functions.Count > 0) { var builder = new QueryableAggregatesExpressionBuilder(source, functions); var groups = builder.CreateQuery(); foreach (AggregateFunctionsGroup group in groups) { return group.GetAggregateResults(functions); } } return new AggregateResultCollection(); }