public IActionResult EnrollmentCreate(int?id) { var courses = _context.Enrollment.Include(e => e.Student).Where(e => e.CourseId == id).FirstOrDefault(); NewStudentEnrollmentsViewModel coursestudent = new NewStudentEnrollmentsViewModel { Enrollments = courses, StudentsList = new MultiSelectList(_context.Student.OrderBy(s => s.FirstName), "Id", "FullName"), SelectedStudents = _context.Enrollment .Where(s => s.CourseId == id) .Include(m => m.Student).Select(sa => sa.StudentId) }; return(View(coursestudent)); }
public async Task <IActionResult> EnrollmentCreate(int id, NewStudentEnrollmentsViewModel newStudentEnrollmentsViewModel) { IEnumerable <int> listStudents = newStudentEnrollmentsViewModel.SelectedStudents; IEnumerable <int> existStudents = _context.Enrollment.Where(s => listStudents.Contains(s.StudentId) && s.CourseId == id).Select(s => s.StudentId); IEnumerable <int> newStudents = listStudents.Where(s => !existStudents.Contains(s)); foreach (int studentId in newStudents) { _context.Enrollment.Add(new Enrollment { StudentId = studentId, CourseId = id, Year = newStudentEnrollmentsViewModel.Enrollments.Year, Semester = newStudentEnrollmentsViewModel.Enrollments.Semester }); } await _context.SaveChangesAsync(); return(RedirectToAction(nameof(EnrollmentIndex))); }