Beispiel #1
0
        // GET: Courses
        public async Task <IActionResult> Index(string CourseSemester, string CourseProgramme, string SearchString)
        {
            IQueryable <Course> courses        = _context.Course.AsQueryable();
            IQueryable <int>    semesterQuery  = _context.Course.OrderBy(m => m.Semester).Select(m => m.Semester).Distinct();
            IQueryable <string> programmeQuery = _context.Course.OrderBy(m => m.Programme).Select(m => m.Programme).Distinct();

            if (!string.IsNullOrEmpty(SearchString))
            {
                courses = courses.Where(s => s.Title.ToLower().Contains(SearchString.ToLower()));
            }
            int CourseSemesterID = Convert.ToInt32(CourseSemester);

            if (CourseSemesterID != 0)
            {
                courses = courses.Where(x => x.Semester == CourseSemesterID);
            }
            if (!string.IsNullOrEmpty(CourseProgramme))
            {
                courses = courses.Where(x => x.Programme == CourseProgramme);
            }

            courses = courses.Include(c => c.FirstTeacher).Include(c => c.SecondTeacher)
                      .Include(c => c.Students).ThenInclude(c => c.Student);


            var TitleSemesterProgramme = new CourseTitleSemesterProgrammeViewModel
            {
                Semesters  = new SelectList(await semesterQuery.ToListAsync()),
                Programmes = new SelectList(await programmeQuery.ToListAsync()),
                Courses    = await courses.ToListAsync()
            };

            return(View(TitleSemesterProgramme));
        }
        // GET: Courses
        public async Task <IActionResult> Index(int courseS, string courseP, string searchString)
        {
            IQueryable <Course> courses        = _context.Course.AsQueryable();
            IQueryable <int>    semesterQuery  = _context.Course.OrderBy(c => c.semester).Select(c => c.semester).Distinct();
            IQueryable <string> programmeQuery = _context.Course.OrderBy(c => c.programme).Select(c => c.programme).Distinct();

            if (!string.IsNullOrEmpty(searchString))
            {
                courses = courses.Where(c => c.title.Contains(searchString));
            }
            if (courseS > 0)
            {
                courses = courses.Where(x => x.semester == courseS);
            }
            if (!string.IsNullOrEmpty(courseP))
            {
                courses = courses.Where(x => x.programme == courseP);
            }

            courses = courses.Include(c => c.firstTeacher).Include(c => c.secondTeacher).Include(c => c.Enrollments)
                      .ThenInclude(e => e.student);

            var courseTitleSemesterProgrammeVM = new CourseTitleSemesterProgrammeViewModel
            {
                semesterVM  = new SelectList(await semesterQuery.ToListAsync()),
                programmeVM = new SelectList(await programmeQuery.ToListAsync()),
                coursesVM   = await courses.ToListAsync()
            };

            var universityContext = _context.Course.Include(c => c.firstTeacher).Include(c => c.secondTeacher)
                                    .Include(c => c.Enrollments).ThenInclude(e => e.student);

            return(View(courseTitleSemesterProgrammeVM));
        }