public ActionResult Create(Instructor instructor) { if (ModelState.IsValid) { db.Instructors.Add(instructor); db.SaveChanges(); return RedirectToAction("Index"); } return View(instructor); }
// update courses list after editing private void UpdateInstructorCourses(string[] selectedCourses, Instructor instructorToUpdate) { if (selectedCourses == null) { instructorToUpdate.Courses = new List<Course>(); return; } var selectedCoursesHS = new HashSet<string>(selectedCourses); var instructorCourses = new HashSet<int> (instructorToUpdate.Courses.Select(c => c.CourseId)); foreach (var course in db.Courses) { if (selectedCoursesHS.Contains(course.CourseId.ToString())) { if (!instructorCourses.Contains(course.CourseId)) { instructorToUpdate.Courses.Add(course); } } else { if (instructorCourses.Contains(course.CourseId)) { instructorToUpdate.Courses.Remove(course); } } } }
// populate list of courses for an instructor private void PopulateAssignedCourseData(Instructor instructor) { var allCourses = db.Courses; var instructorCourses = new HashSet<int>(instructor.Courses.Select(c => c.CourseId)); var viewModel = new List<AssignedCourseData>(); foreach (var course in allCourses) { viewModel.Add(new AssignedCourseData { CourseId = course.CourseId, CourseName = course.CourseName, Assigned = instructorCourses.Contains(course.CourseId) }); } ViewBag.Courses = viewModel; }