Ejemplo n.º 1
0
        public SortedDictionary <DayOfWeek, IEnumerable <TimeReport> > GetTopEmployeesForWeek(DateTime fromDate)
        {
            DateTime weekLastDay = GetWeekLastDay(fromDate);

            List <IGrouping <DayOfWeek, TimeReport> > timeReportsForWeek = _timeReportRepository.Get(x => x.Date >= fromDate && x.Date <= weekLastDay).GroupBy(g => g.Date.DayOfWeek).ToList();

            var topEmployeesOfWeek = new SortedDictionary <DayOfWeek, IEnumerable <TimeReport> >();

            foreach (var day in timeReportsForWeek)
            {
                IEnumerable <TimeReport> orderedReports = day.OrderBy(x => x.Hours).Take(3);

                topEmployeesOfWeek.Add(day.Key, orderedReports);
            }

            return(topEmployeesOfWeek);
        }