public IEnumerable <Measurement> Aggregate( IGroupingStrategy groupingStrategy, IMeasurementAggregator aggregator) { var partitions = groupingStrategy.Group(_measurements); foreach (var partition in partitions) { yield return(aggregator.Aggregate(partition)); } }
/// <summary> /// Registers the grouping strategy. /// </summary> /// <typeparam name="T">The target unit type of the strategy</typeparam> /// <param name="strat">The strategy.</param> public static void RegisterGroupingStrategy <T>(IGroupingStrategy <T> strat) where T : IGroupable <T> { _groupingStrategies[typeof(T)] = strat; }
public void LinkGrouping(IGroupingStrategy grouping) { Grouping = grouping; }