private static CalculationResultCollection GroupCollection(CalculationResultCollection source, Func <DateTime, DateTime> getGrouping) { var result = new CalculationResultCollection(); result.AddRange(source .GroupBy(p => getGrouping(p.Date)) .Select(p => new CalculationResult( p.Key, TimeSpan.FromSeconds(p.Sum(q => q.WorkingHours.TotalSeconds)), TimeSpan.FromSeconds(p.Sum(q => q.ExactWorkedHours.TotalSeconds)), TimeSpan.FromSeconds(p.Sum(q => q.CalculatedWorkedHours.TotalSeconds)) ))); return(result); }
public CalculationResult GetBalance(ClockWorkUnitCollection units, DateTime snapshot) { var result = new CalculationResultCollection(new ClockWorkUnitCollection(units.Worker, units.Where(p => p.End <= snapshot).ToArray()).Select(Calculate)); return(new CalculationResult(units.First().Start.Date, result.WorkingHours, result.ExactWorkedHours, result.CalculatedWorkedHours)); }
public CalculationGrouping(CalculationResultCollection result) { Day = result; }