public ActionResult Create(DegreeProgram degreeprogram) { if (ModelState.IsValid) { int anid = Request<DegreeProgram>.Add(degreeprogram, "A", "B"); return RedirectToAction("Edit", new { id = anid }); } return View(degreeprogram); }
private DegreeProgram createTempDegreeProgram() { DegreeProgram temp = new DegreeProgram() { ID = 3, degreeProgramName = "Degree Program 3", requiredCourses = new Collection<RequiredCourse>(), electiveCourses = new Collection<ElectiveCourse>(), }; return temp; }
public ActionResult Edit(DegreeProgram degreeprogram, IEnumerable<RequiredCourse> RequiredCourses, IEnumerable<ElectiveCourse> ElectiveCourses) { if (ModelState.IsValid) { DegreeProgram degreeAttached = Request<DegreeProgram>.GetItemByID(degreeprogram.ID, "A", "B"); degreeprogram.requiredCourses = degreeAttached.requiredCourses; degreeprogram.electiveCourses = degreeAttached.electiveCourses; if(RequiredCourses == null){ RequiredCourses = new List<RequiredCourse>(); } if (ElectiveCourses == null) { ElectiveCourses = new List<ElectiveCourse>(); } //figures out which courses were deleted from the form LinkedList<RequiredCourse> toRemove = new LinkedList<RequiredCourse>(); foreach (RequiredCourse course in degreeAttached.requiredCourses) { if (course.ID > 0) { if (!RequiredCourses.Contains(course)) { RequiredCourse reqcourseAttached = Request<RequiredCourse>.GetItemByID(course.ID, "A", "B"); toRemove.AddFirst(reqcourseAttached); } } } //deletes those courses from the list while(toRemove.Count > 0){ RequiredCourse removeme = toRemove.First(); toRemove.RemoveFirst(); Request<RequiredCourse>.Delete(removeme.ID, "A", "B"); } //clears the list degreeprogram.requiredCourses = new List<RequiredCourse>(); //adds the courses that exist to the list foreach (RequiredCourse reqcourse in RequiredCourses) { RequiredCourse reqcourseAttached = null; ; if (reqcourse.ID > 0) { reqcourseAttached = Request<RequiredCourse>.GetItemByID(reqcourse.ID, "A", "B"); Request<RequiredCourse>.Update(reqcourseAttached, reqcourse, "A", "B"); } else { if (Request<Course>.GetItemByID(reqcourse.courseID, "A", "B") != null) { int id = Request<RequiredCourse>.Add(reqcourse, "A", "B"); reqcourseAttached = Request<RequiredCourse>.GetItemByID(id, "A", "B"); } } if (reqcourseAttached != null) { degreeprogram.requiredCourses.Add(reqcourseAttached); } } //figures out which elective lists were deleted from the list LinkedList<ElectiveCourse> toRemoveMe = new LinkedList<ElectiveCourse>(); foreach (ElectiveCourse course in degreeAttached.electiveCourses) { if (!ElectiveCourses.Contains(course)) { ElectiveCourse elcourseAttached = Request<ElectiveCourse>.GetItemByID(course.ID, "A", "B"); toRemoveMe.AddFirst(elcourseAttached); } } //remove those elective lists from the list while (toRemoveMe.Count > 0) { ElectiveCourse removeme = toRemoveMe.First(); toRemoveMe.RemoveFirst(); Request<ElectiveCourse>.Delete(removeme.ID, "A", "B"); } //clear the list degreeprogram.electiveCourses = new List<ElectiveCourse>(); //add the existing elective lists to the list foreach (ElectiveCourse elcourse in ElectiveCourses) { ElectiveCourse elcourseAttached = null; ; if (elcourse.ID > 0) { elcourseAttached = Request<ElectiveCourse>.GetItemByID(elcourse.ID, "A", "B"); Request<ElectiveCourse>.Update(elcourseAttached, elcourse, "A", "B"); } else { if (Request<ElectiveList>.GetItemByID(elcourse.electiveListID, "A", "B") != null) { int id = Request<ElectiveCourse>.Add(elcourse, "A", "B"); elcourseAttached = Request<ElectiveCourse>.GetItemByID(id, "A", "B"); } } if (elcourseAttached != null) { degreeprogram.electiveCourses.Add(elcourseAttached); } } Request<DegreeProgram>.Update(degreeAttached, degreeprogram, "A", "B"); return RedirectToAction("Index"); } if (RequiredCourses != null) { foreach (RequiredCourse course in RequiredCourses) { if (course.courseID > 0) { course.course = Request<Course>.GetItemByID(course.courseID, "A", "B"); } } } degreeprogram.requiredCourses = RequiredCourses.ToList(); if (ElectiveCourses != null) { foreach (ElectiveCourse course in ElectiveCourses) { if (course.electiveListID > 0) { course.electiveList = Request<ElectiveList>.GetItemByID(course.electiveListID, "A", "B"); } } } degreeprogram.electiveCourses = ElectiveCourses.ToList(); return View(degreeprogram); }