public IEnumerable <StudentEntity> GetAll(EvasionFilter evasionFilter) { var query = DbContext.Student .Include(Student => Student.Person) .Include(Student => Student.ClassRoomStudent) .Include(Student => Student.Presence) .Where(s => s.EvasionScore >= evasionFilter.IntervalMin && s.EvasionScore < evasionFilter.IntervalMax) .AsQueryable(); if (evasionFilter.IdClassRoom != null) { query = query.Where(s => s.ClassRoomStudent.Any(i => i.IdClassRoom == evasionFilter.IdClassRoom)); } return(query); }
public IEnumerable <ProgramEntity> GetAllProgram(EvasionFilter evasionFilter) { var query = DbContext.Program .Include(l => l.ClassRoom) .ThenInclude(t => t.ClassRoomStudent) .ThenInclude(t => t.Student) .Include(l => l.ClassRoom) .ThenInclude(t => t.Period) .Where(l => l.ClassRoom.Any(c => c.ClassRoomStudent.Any(s => s.Student.EvasionScore >= evasionFilter.IntervalMin && s.Student.EvasionScore < evasionFilter.IntervalMax))) .AsQueryable(); if (evasionFilter.IdCampus.HasValue) { query = query.Where(l => l.ClassRoom.Any(u => u.IdCampus == evasionFilter.IdCampus)); } query = query.OrderBy(t => t.Name); return(query); }
public IEnumerable <StudentEntity> GetAllByClassRoom(EvasionFilter evasionFilter) { var query = DbContext.Student .Include(l => l.Person) .Include(q => q.ClassRoomStudent) .ThenInclude(StudentClass => StudentClass.ClassRoom) .ThenInclude(Class => Class.Program) .Include(Person => Person.Presence) .Include(u => u.EvasionHistory) .ThenInclude(u => u.ReasonEvasion) .ThenInclude(u => u.Reason) .Where(l => (l.EvasionScore >= evasionFilter.IntervalMin && l.EvasionScore < evasionFilter.IntervalMax)) .AsQueryable(); if (evasionFilter.IdClassRoom.HasValue) { query = query.Where(l => l.ClassRoomStudent.Any(c => (c.IdClassRoom == evasionFilter.IdClassRoom))); } return(query.OrderBy(l => l.Person.Name)); }
public int GetCountByEvasion(EvasionFilter evasionFilter) { var query = DbContext.Student .Where(s => s.EvasionScore >= evasionFilter.IntervalMin && s.EvasionScore < evasionFilter.IntervalMax) .AsQueryable(); if (evasionFilter.IdCampus.HasValue) { query = query.Include(s => s.ClassRoomStudent) .ThenInclude(c => c.ClassRoom); if (evasionFilter.IdClassRoom.HasValue) { query = query.Where(s => s.ClassRoomStudent.Any(i => (i.ClassRoom.IdCampus == evasionFilter.IdCampus) && (i.IdClassRoom == evasionFilter.IdClassRoom))); } else { query = query.Where(s => s.ClassRoomStudent.Any(i => i.ClassRoom.IdCampus == evasionFilter.IdCampus)); } } else { query = query.Include(s => s.ClassRoomStudent); if (evasionFilter.IdClassRoom.HasValue) { query = query.Where(s => s.ClassRoomStudent.Any(i => i.IdClassRoom == evasionFilter.IdClassRoom)); } else { query = query.Where(s => s.ClassRoomStudent.Any()); } } return(query.Count()); }