private List <CalendarWeek> CalculateReservations(int year, int month) { DateLogicHelper dateLogicHelper = new DateLogicHelper(); List <CalendarWeek> monthReservedInfo = dateLogicHelper.GetWeeksOfMonth(year, month); using (var db = new DoorDbContext()) { var reservedDaysOfMonth = db.Reservations.Include(r => r.HourReservations).Where(r => r.DateReservation.HasValue && r.DateReservation.Value.Month == month).OrderBy(r => r.DateReservation.Value.Day).ToList(); foreach (var week in monthReservedInfo) { foreach (var day in week.DaysOfWeek) { if (day != null) { var reservationsInDay = reservedDaysOfMonth.FirstOrDefault(r => r.DateReservation.HasValue && r.DateReservation.Value.Day == day.DayOfMonth); int freeWorkStations = this.defaultCountOfFreeWorkStations; if (reservationsInDay != null) { int countOfReservedWorkStations = 45; freeWorkStations = freeWorkStations - countOfReservedWorkStations; } day.AvailableWorkStations = freeWorkStations; } } } } return(monthReservedInfo); }