public ApplyClause BindApply(IEnumerable <QueryToken> tokens) { ExceptionUtils.CheckArgumentNotNull(tokens, "tokens"); var transformations = new List <TransformationNode>(); foreach (var token in tokens) { switch (token.Kind) { case QueryTokenKind.Aggregate: var aggregate = BindAggregateToken((AggregateToken)(token)); transformations.Add(aggregate); aggregateExpressionsCache = aggregate.Expressions; state.AggregatedPropertyNames = aggregate.Expressions.Select(statement => statement.Alias).ToList(); break; case QueryTokenKind.AggregateGroupBy: var groupBy = BindGroupByToken((GroupByToken)(token)); transformations.Add(groupBy); break; default: var filterClause = this.filterBinder.BindFilter(token); var filterNode = new FilterTransformationNode(filterClause); transformations.Add(filterNode); break; } } return(new ApplyClause(transformations)); }
public ApplyClause BindApply(IEnumerable<QueryToken> tokens) { ExceptionUtils.CheckArgumentNotNull(tokens, "tokens"); var transformations = new List<TransformationNode>(); foreach (var token in tokens) { switch (token.Kind) { case QueryTokenKind.Aggregate: var aggregate = BindAggregateToken((AggregateToken)(token)); transformations.Add(aggregate); aggregateExpressionsCache = aggregate.Expressions; state.AggregatedPropertyNames = aggregate.Expressions.Select(statement => statement.Alias).ToList(); break; case QueryTokenKind.AggregateGroupBy: var groupBy = BindGroupByToken((GroupByToken)(token)); transformations.Add(groupBy); break; default: var filterClause = this.filterBinder.BindFilter(token); var filterNode = new FilterTransformationNode(filterClause); transformations.Add(filterNode); break; } } return new ApplyClause(transformations); }