public async Task <IActionResult> UnEnrollStudents(int?id) { var course = _context.Course.Where(s => s.Id == id).Include(s => s.Students).First(); if (course == null) { return(NotFound()); } var unEnrollStudentsVM = new UnEnrollStudentsViewModel { Course = course, StudentList = new MultiSelectList(_context.Student.OrderBy(s => s.Id), "Id", "FullName"), SelectedStudents = course.Students.Select(sa => sa.StudentId), }; return(View(unEnrollStudentsVM)); }
public async Task <IActionResult> UnEnrollStudents(int?courseId, int?year, string semester) { IQueryable <Enrollment> enrollments = _context.Enrollments; List <Course> courses = await _context.Courses.ToListAsync(); if (courseId != null) { enrollments = enrollments.Where(s => s.CourseId == courseId); } IQueryable <int?> years = enrollments.OrderBy(m => m.Year).Select(m => m.Year).Distinct(); if (year != null) { enrollments = enrollments.Where(s => s.Year == year); } IQueryable <string> semesters = enrollments.OrderBy(m => m.Semester).Select(m => m.Semester).Distinct(); if (!string.IsNullOrEmpty(semester)) { enrollments = enrollments.Where(s => s.Semester == semester); } if (courseId != null && year != null && !string.IsNullOrEmpty(semester)) { enrollments = enrollments.Include(e => e.Student); } else { enrollments = null; } var unenrollStudentsViewModel = new UnEnrollStudentsViewModel { Courses = new SelectList(courses, "Id", "Title"), Enrollments = (enrollments != null ? new SelectList(await enrollments.OrderBy(s => s.Student.FullNameId).ToListAsync(), "Id", "Student.FullNameId") : null), EnrollmentIds = (enrollments != null ? await enrollments.Select(e => e.Id).ToListAsync() : null), Years = new SelectList(years.ToList()), Semesters = new SelectList(semesters.ToList()) }; return(View(unenrollStudentsViewModel)); }
public async Task <IActionResult> UnEnrollStudents(UnEnrollStudentsViewModel entry) { if (ModelState.IsValid) { foreach (int eId in entry.EnrollmentIds) { Enrollment enrollment = await _context.Enrollments .FirstOrDefaultAsync(c => c.Id == eId); if (enrollment != null) { enrollment.FinishDate = entry.FinishDate; _context.Update(enrollment); } } await _context.SaveChangesAsync(); Course course = await _context.Courses.FirstOrDefaultAsync(c => c.Id == entry.CourseId); return(RedirectToAction(nameof(Index), new { sTitle = course.Title, sSem = entry.Semester, sYear = entry.Year })); } return(RedirectToAction(nameof(Index))); }