public ActionResult AddSubjectsForSelectedDegree(IEnumerable <Guid> subjects, string selectedDegID, string degree) { if (degree != null) { Guid degID = Guid.Parse(degree); Degree_Program deg = r.Degree_Program.Where(s => s.ProgramID == degID).Select(s => s).FirstOrDefault(); ViewBag.DegreeSelected = deg; ViewBag.DegreeName = deg.Degree_ProgramName ; var getSubjects = r.Subjects.OrderBy(s => s.SubjectID).Select(s => s); return(View(getSubjects)); } else { if (subjects != null) { //int degID = int.Parse(selectedDegID); Guid degID = Guid.Parse(degree); Degree_Program getDegree = r.Degree_Program.Where(s => s.ProgramID == degID).Select(s => s).FirstOrDefault(); List <Subject> listToDelete = r.Subjects.Where(s => subjects.Contains(s.SubjectID)).ToList(); if (CoursesModel.CheckToSeeIfThereExistARecordWithSameDegreeNameAndSubject(getDegree, listToDelete)) { foreach (var item in listToDelete) { r.Degree_Subject.Add(new Degree_Subject { DegreeID = getDegree.ProgramID, SubjectID = item.SubjectID, ID = Guid.NewGuid() }); } r.SaveChanges(); ViewBag.DegreeSelected = getDegree.Degree_ProgramName; ViewBag.Message = "Succesfully Subjects Assigned"; return(View(listToDelete)); } else { ViewBag.Message = "The Degree " + getDegree.Degree_ProgramName + " has already assigned some Selected Subjects"; return(View(listToDelete)); } } else { ViewBag.Message = "Plz Select A Degree First"; return(View()); } } }