Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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));
        }
Exemplo n.º 3
0
 public CalculationGrouping(CalculationResultCollection result)
 {
     Day = result;
 }