public async Task <IActionResult> StudentsbyCourse(int?id, int enrollmentYear) { if (id == null) { return(NotFound()); } IQueryable <Enrollment> enrollments = _context.Enrollment.Where(e => e.Id == id); enrollments = enrollments.Include(e => e.Course).Include(e => e.Student).OrderBy(e => e.Student.StudentId).OrderBy(e => e.Student.StudentId); if (enrollmentYear != 0) { enrollments = enrollments.Where(x => x.Year == enrollmentYear); } else { enrollments = enrollments.Where(x => x.Year == DateTime.Now.Year); } EnrollmentFilterViewModel vm = new EnrollmentFilterViewModel { Enrollments = await enrollments.ToListAsync() }; ViewData["currentYear"] = _context.Course.Where(c => c.Id == id).Select(c => c.Title).FirstOrDefault(); return(View(vm)); }
public async Task <IActionResult> Index(string enrollmentCourse, int enrollmentYear, string enrollmentSemester) { IQueryable <Enrollment> enrollments = _context.Enrollment.AsQueryable(); IQueryable <int> yearQuery = _context.Enrollment.OrderBy(m => m.Year).Select(m => m.Year).Distinct(); IQueryable <string> semesterQuery = _context.Enrollment.Where(m => m.Semester != null).OrderBy(m => m.Semester).Select(m => m.Semester).Distinct(); //ama ne mi gi zema distinct if (!string.IsNullOrEmpty(enrollmentCourse)) { enrollments = enrollments.Where(s => s.Course.Title.ToLower().Contains(enrollmentCourse.ToLower())); } if (enrollmentYear != 0) { enrollments = enrollments.Where(x => x.Year == enrollmentYear); } if (!string.IsNullOrEmpty(enrollmentSemester)) { enrollments = enrollments.Where(s => s.Semester.Equals(enrollmentSemester)); } var vm = new EnrollmentFilterViewModel { Years = new SelectList(await yearQuery.ToListAsync()), Semesters = new SelectList(await semesterQuery.ToListAsync()), Enrollments = await enrollments.OrderBy(e => e.Course.Title).Include(s => s.Course).Include(s => s.Student).ToListAsync() }; return(View(vm)); }
public async Task <IActionResult> StudentSubject(int?id, int enrollmentYear) { if (id == null) { return(NotFound()); } /* var students = _context.Enrollment * .Include(e => e.Student) * .Include(e=>e.Course) * .Where(s => s.CourseId == id); * return View(await students.ToListAsync());*/ IQueryable <int?> year = _context.Enrollment.Select(m => m.Year).Distinct(); var enrollments = _context.Enrollment .Include(e => e.Student) .Include(e => e.Course) .Where(s => s.CourseId == id); if (enrollmentYear != 0) { enrollments = enrollments.Where(x => x.Year == enrollmentYear); } else { enrollments = enrollments.Where(x => x.Year == DateTime.Now.Year); } EnrollmentFilterViewModel enrolmentfilter = new EnrollmentFilterViewModel { SelectYear = new SelectList(await year.ToListAsync()), Enrollments = await enrollments.ToListAsync() }; ViewData["CourseName"] = _context.Course.Where(e => e.Id == id).Select(e => e.Title).FirstOrDefault(); return(View(enrolmentfilter)); }
public async Task <IActionResult> CourseStudents(int?id, int enrollmentYear) { if (id == null) { return(NotFound()); } IQueryable <Enrollment> enrollments = _context.Enrollment.Where(e => e.CourseId == id); enrollments = enrollments.Include(e => e.Course).Include(e => e.Student).OrderBy(e => e.Student.Index).OrderBy(e => e.Student.Index); if (enrollments != null) { var anyenrollment = enrollments.First(); AppUser loggedUser = await userManager.GetUserAsync(User); if ((loggedUser.TeacherId != anyenrollment.Course.FirstTeacherId) && (loggedUser.TeacherId != anyenrollment.Course.SecondTeacherId)) { return(RedirectToAction("AccessDenied", "Account", null)); } } if (enrollmentYear != 0) { enrollments = enrollments.Where(x => x.Year == enrollmentYear); } else { //po default se prikazuvat studentite zapisani vo poslednata godina enrollments = enrollments.Where(x => x.Year == DateTime.Now.Year); } EnrollmentFilterViewModel vm = new EnrollmentFilterViewModel { Enrollments = await enrollments.ToListAsync() }; ViewData["CourseName"] = _context.Course.Where(c => c.Id == id).Select(c => c.Title).FirstOrDefault(); return(View(vm)); }