private void PopulateAssignedSchoolData(Lecturer lecturer)
 {
     var allSchools = db.Schools;
     var lecturerSchool = new HashSet<int>(lecturer.AllSchoolLecturerBelongsTo.Select(c => c.SchoolID));
     var viewModel = new List<AssignedSchoolData>();
     foreach (var school in allSchools)
     {
         viewModel.Add(new AssignedSchoolData
         {
             SchoolID = school.SchoolID,
             Name = school.Name,
             Assigned = lecturerSchool.Contains(school.SchoolID)
         });
     }
     ViewBag.Schools = viewModel;
 }
        private void UpdateLectuerSchool(string[] selectedSchools, Lecturer lecturerToUpdate)
        {
            if (selectedSchools == null)
            {
                lecturerToUpdate.AllSchoolLecturerBelongsTo = new List<School>();
                return;
            }

            var selectedSchoolsHS = new HashSet<string>(selectedSchools);
            var lecturerSchools = new HashSet<int>
                (lecturerToUpdate.AllSchoolLecturerBelongsTo.Select(c => c.SchoolID));
            foreach (var school in db.Schools)
            {
                if (selectedSchoolsHS.Contains(school.SchoolID.ToString()))
                {
                    if (!lecturerSchools.Contains(school.SchoolID))
                    {
                        lecturerToUpdate.AllSchoolLecturerBelongsTo.Add(school);
                    }
                }
                else
                {
                    if (lecturerSchools.Contains(school.SchoolID))
                    {
                        lecturerToUpdate.AllSchoolLecturerBelongsTo.Remove(school);
                    }
                }
            }
        }
 public ActionResult CreateLecturer()
 {
     var lecturer = new Lecturer();
     lecturer.AllSchoolLecturerBelongsTo = new List<School>();
     PopulateAssignedSchoolData(lecturer);
     return View();
 }