public IEnumerable<Measurement> Aggregate(IGrouper grouper,
     IAggregateCalculator calculator)
 {
     var partitions = grouper.Group(_measurements);
     foreach (var partition in partitions)
     {
         yield return calculator.Aggregate(partition);
     }
 }
Пример #2
0
        public IEnumerable <Measurement> Aggregate(IGrouper grouper, IAveragingCalculator calculator)
        {
            var partitions = grouper.Group(measurements);

            foreach (var partition in partitions)
            {
                yield return(calculator.Aggregate(partition));
            }
        }
Пример #3
0
        public async Task <IList <IHolder> > CreateItemCollectionAsync(IEnumerable <TimeEntryHolder> timeHolders, bool loadTimeEntryInfo)
        {
            IEnumerable <T> timeHolders2 = null;

            if (loadTimeEntryInfo)
            {
                timeHolders2 = await Task.WhenAll(grouper.Group (timeHolders).Select(async x => {
                    await x.LoadInfoAsync();
                    return(x);
                }));
            }
            else
            {
                timeHolders2 = grouper.Group(timeHolders);
            }

            return(timeHolders2
                   .OrderByDescending(x => x.GetStartTime())
                   .GroupBy(x => x.GetStartTime().ToLocalTime().Date)
                   .SelectMany(gr => gr.Cast <IHolder>().Prepend(new DateHolder(gr.Key, gr.Cast <ITimeEntryHolder> ())))
                   .ToList());
        }