// GET: Instructor/Create
        public ActionResult Create()
        {
            var instructor = new Instructor();

            instructor.Courses = new List<Course>();
            PopulateAssignedCourseData(instructor);
            return View();
        }
 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);
             }
         }
     }
 }
        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,
                    Title = course.Title,
                    Assigned = instructorCourses.Contains(course.CourseID)
                });
            }
            ViewBag.Courses = viewModel;
        }