public List <WorkDay> GetWorkdays(int employeeId, DateTime startDate, DateTime endDate) { List <WorkDay> workDays = new List <WorkDay>(); var accessEvents = GetAccessEvents(employeeId, startDate, endDate); var totalDays = (endDate - startDate).Days + 1; var startDay = new DateTime(startDate.Year, startDate.Month, startDate.Day, 0, 0, 0); for (var i = 0; i < totalDays; i++) { var day = startDate.AddDays(i); var dayAccessEvents = accessEvents.Where(x => ( x.EventTime.Year == day.Year && x.EventTime.Month == day.Month && x.EventTime.Day == day.Day )).ToList(); var workDay = WorkDay.GetWorkDay(employeeId, day, dayAccessEvents); workDays.Add(workDay); } return(workDays); }