예제 #1
0
        private IQueryable <Class> Apply(IQueryable <Class> classes, ClassSearchEntity classSearchEntity)
        {
            if (classSearchEntity.ClassCode != null)
            {
                classes = classes.Where(c => c.ClassCode == classSearchEntity.ClassCode);
            }

            if (classSearchEntity.LecturerId != Guid.Empty)
            {
                classes = classes.Where(c => c.LecturerId == classSearchEntity.LecturerId);
            }
            if (classSearchEntity.VersionId != Guid.Empty)
            {
                classes = classes.Where(c => c.VersionSurveyId == classSearchEntity.VersionId);
            }
            if (classSearchEntity.Subject != null)
            {
                classes = classes.Where(c =>
                                        c.Subject.Contains(classSearchEntity.Subject) || classSearchEntity.Subject.Contains(c.Subject));
            }

            if (classSearchEntity.Semester != null)
            {
                classes = classes.Where(c => c.Semester.Equals(classSearchEntity.Semester));
            }
            if (classSearchEntity.OpenedDate.HasValue && classSearchEntity.OpenedDate.Value != DateTime.MinValue)
            {
                classes = classes.Where(c => c.OpenedDate.Value.CompareTo(DateTime.Now) == -1);
            }
            if (classSearchEntity.ClosedDate.HasValue && classSearchEntity.ClosedDate.Value != DateTime.MinValue)
            {
                classes = classes.Where(c => c.ClosedDate.Value.CompareTo(DateTime.Now) == -1);
            }
            return(classes);
        }
예제 #2
0
        public int Count(UserEntity userEntity, ClassSearchEntity classSearchEntity)
        {
            if (classSearchEntity == null)
            {
                classSearchEntity = new ClassSearchEntity();
            }
            IQueryable <Class> classes = context.Classes;

            classes = Apply(classes, classSearchEntity);
            return(classes.Count());
        }
예제 #3
0
        public List <ClassEntity> List(UserEntity userEntity, ClassSearchEntity classSearchEntity)
        {
            if (classSearchEntity == null)
            {
                classSearchEntity = new ClassSearchEntity();
            }
            IQueryable <Class> classes = context.Classes.Include(s => s.StudentClasses).ThenInclude(sc => sc.Student)
                                         .Include(s => s.VersionSurvey).Include(c => c.Lecturer);

            classes = Apply(classes, classSearchEntity);

            return(classes.Select(c => new ClassEntity(c, c.VersionSurvey, c.StudentClasses, c.Lecturer)).ToList());
        }
예제 #4
0
 public List <ClassEntity> List(ClassSearchEntity classSearchEntity)
 {
     return(ClassService.List(UserEntity, classSearchEntity));
 }
예제 #5
0
 public int Count(ClassSearchEntity classSearchEntity)
 {
     return(ClassService.Count(UserEntity, classSearchEntity));
 }