private UserStatistics GetUserStatistics(int userId, int numOfDaysBack) { var info = new UserStatistics(); var firstDayOfWeek = DateTime.Now; var firstDayOfMonth = DateTime.Now; while (firstDayOfWeek.DayOfWeek != DayOfWeek.Monday) { firstDayOfWeek = firstDayOfWeek.AddDays(-1); } while (firstDayOfMonth.Day != 1) { firstDayOfMonth = new DateTime(DateTime.Today.Year, DateTime.Today.Month, 1); } info.RegisteredHoursThisWeek = _timeEntryRepository.GetRegisteredHours(firstDayOfWeek.Date, DateTime.Now, userId); info.RegisteredHoursToday = _timeEntryRepository.GetRegisteredHours(DateTime.Now.Date, DateTime.Now, userId); info.RegisteredHoursThisMonth = _timeEntryRepository.GetRegisteredHours(firstDayOfMonth.Date, DateTime.Now, userId); info.EarningsToday = _timeEntryRepository.GetEarningsByUser(DateTime.Now.Date, DateTime.Now, userId); info.EarningsThisWeek = _timeEntryRepository.GetEarningsByUser(firstDayOfWeek.Date, DateTime.Now, userId); info.EarningsThisMonth = _timeEntryRepository.GetEarningsByUser(firstDayOfMonth.Date, DateTime.Now, userId); info.BillableHoursToday = _timeEntryRepository.GetBillableHours(DateTime.Now.Date, DateTime.Now, userId); info.BillableHoursThisWeek = _timeEntryRepository.GetBillableHours(firstDayOfWeek.Date, DateTime.Now, userId); info.BillableHoursThisMonth = _timeEntryRepository.GetBillableHours(firstDayOfMonth.Date, DateTime.Now, userId); return(info); }