Example #1
0
        public async Task <ExamRegister> Get(ExamRegisterFilter filter)
        {
            IQueryable <ExamRegisterDAO> query = examRegContext.ExamRegister.AsNoTracking();

            query = DynamicFilter(query, filter);

            List <ExamRegister> list = await query.Select(e => new ExamRegister()
            {
                StudentId                = e.StudentId,
                StudentNumber            = e.Student.StudentNumber,
                ExamPeriodId             = e.ExamPeriodId,
                ExamDate                 = e.Exam.ExamPeriod.ExamDate,
                StartHour                = e.Exam.ExamPeriod.StartHour,
                FinishHour               = e.Exam.ExamPeriod.FinishHour,
                SubjectName              = e.Exam.ExamPeriod.Term.SubjectName,
                ExamProgramId            = e.Exam.ExamPeriod.ExamProgramId,
                ExamProgramName          = e.Exam.ExamPeriod.ExamProgram.Name,
                ExamRoomId               = e.ExamRoomId,
                ExamRoomNumber           = e.Exam.ExamRoom.RoomNumber,
                ExamRoomAmphitheaterName = e.Exam.ExamRoom.AmphitheaterName,
                ExamRoomComputerNumber   = e.Exam.ExamRoom.ComputerNumber
            }).ToListAsync();

            return(list.FirstOrDefault());
        }
Example #2
0
        public async Task <int> Count(ExamRegisterFilter filter)
        {
            IQueryable <ExamRegisterDAO> query = examRegContext.ExamRegister.AsNoTracking();

            query = DynamicFilter(query, filter);
            return(await query.CountAsync());
        }
Example #3
0
 private IQueryable <ExamRegisterDAO> DynamicFilter(IQueryable <ExamRegisterDAO> query, ExamRegisterFilter filter)
 {
     if (filter == null)
     {
         return(query.Where(q => false));
     }
     if (filter.StudentId != null)
     {
         query = query.Where(q => q.StudentId, filter.StudentId);
     }
     if (filter.TermId != null)
     {
         query = query.Where(q => q.Exam.ExamPeriod.TermId, filter.TermId);
     }
     if (filter.ExamPeriodId != null)
     {
         query = query.Where(q => q.Exam.ExamPeriodId, filter.ExamPeriodId);
     }
     return(query);
 }