private void RemoveOldAttendanceEvents(Section section, DateTime date) { var existingAttendanceEvents = _attendanceRepository.GetSectionAttendanceEventsFor(section, date); if (!existingAttendanceEvents.IsNullOrEmpty()) { foreach (var attendanceEvent in existingAttendanceEvents.Where(attendanceEvent => IsTardyOrUnexcused (attendanceEvent.AttendanceEventCategoryDescriptorId))) { DecrementFlagCount(attendanceEvent.Student); } _attendanceRepository.Delete(existingAttendanceEvents); } }
public List<StudentSectionAttendanceEvent> GetSectionAttendanceEventsFor(Section section, DateTime dateTime) { return DbContext.Set<StudentSectionAttendanceEvent>() .Where(ssae => ssae.EventDate == dateTime && ssae.SchoolId == section.SchoolId && ssae.ClassPeriodName == section.ClassPeriodName && ssae.ClassroomIdentificationCode == section.ClassroomIdentificationCode && ssae.LocalCourseCode == section.LocalCourseCode && ssae.TermTypeId == section.TermTypeId && ssae.SchoolYear == section.SchoolYear ) .Include(ssae => ssae.Student) .Include(ssae => ssae.Student.AttendanceFlags) .ToList(); }
public void RecordAttendanceFor(Section section, DateTime date, IEnumerable<StudentSectionAttendanceEvent> newAttendanceEvents) { RemoveOldAttendanceEvents(section, date); AddNewAttendanceEvents(newAttendanceEvents); }