public async Task <IActionResult> CourseEdit(int id, CourseStudentsVM viewmodel) { if (id != viewmodel.Enrollments.CourseId) { return(NotFound()); } if (ModelState.IsValid) { { IEnumerable <int> liststudents = viewmodel.SelectedStudents; IEnumerable <int> existstudents = _context.Enrollment.Where(s => liststudents.Contains((int)s.StudentId) && s.CourseId == id).Select(s => (int)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 = viewmodel.Enrollments.Year, Semester = viewmodel.Enrollments.Semester }); } await _context.SaveChangesAsync(); } //catch (DbUpdateConcurrencyException) //{ // if (!CourseExists(viewmodel.Course.id)) // { // return NotFound(); // } // else // { // throw; // } //} return(RedirectToAction(nameof(CourseIndex))); } //ViewData["FirstTeacherId"] = new SelectList(_context.Teacher, "Id", "FirstName", viewmodel.Course.FirstTeacherId); //ViewData["SecondTeacherId"] = new SelectList(_context.Teacher, "Id", "FirstName", viewmodel.Course.SecondTeacherId); return(View(viewmodel)); }
// GET: Courses/Edit/5 public async Task <IActionResult> CourseEdit(int?id) { if (id == null) { return(NotFound()); } var course = _context.Course.Where(m => m.id == id).Include(m => m.Students).First(); if (course == null) { return(NotFound()); } CourseStudentsVM viewmodel = new CourseStudentsVM { StudentList = new MultiSelectList(_context.Student.OrderBy(s => s.FirstName), "Id", "FirstName"), SelectedStudents = course.Students.Select(sa => (int)sa.StudentId).ToList() }; ViewData["Idd"] = id; ViewData["CourseTitle"] = _context.Course.Where(c => c.id == id).Select(c => c.Title).FirstOrDefault(); return(View(viewmodel)); }