private IAggregationInstance CreateAggregatorInstance(DistinctAggregator aggregator) { switch (aggregator) { case DistinctAggregator.First: return(new FirstAggregationInstance()); case DistinctAggregator.FirstNotNull: return(new FirstNotNullAggregationInstance()); case DistinctAggregator.Last: return(new LastAggregationInstance()); case DistinctAggregator.Max: return(new MaxAggregationInstance()); case DistinctAggregator.Min: return(new MinAggregationInstance()); case DistinctAggregator.Sum: return(new SumAggregationInstance()); case DistinctAggregator.Avg: return(new AvgAggregationInstance()); } return(null); }
public AggregationBuilder <T> ForProperty <X>(Expression <Func <T, X> > getProperty, DistinctAggregator aggregator) { _aggregators[getProperty.GetPropertyInfo().Name] = aggregator; return(this); }