Esempio n. 1
0
        public ActionResult Edit(ElectiveList electivelist, IEnumerable <ElectiveListCourse> ElectiveListCourses)
        {
            if (ModelState.IsValid)
            {
                ElectiveList elistAttached = Request <ElectiveList> .GetItemByID(electivelist.ID, "A", "B");

                electivelist.courses = elistAttached.courses;

                if (ElectiveListCourses == null)
                {
                    ElectiveListCourses = new List <ElectiveListCourse>();
                }

                //figure out the courses that were removed from the list
                LinkedList <ElectiveListCourse> toRemove = new LinkedList <ElectiveListCourse>();
                foreach (ElectiveListCourse course in elistAttached.courses)
                {
                    if (course.ID > 0)
                    {
                        if (!ElectiveListCourses.Contains(course))
                        {
                            ElectiveListCourse elcourseAttached = Request <ElectiveListCourse> .GetItemByID(course.ID, "A", "B");

                            toRemove.AddFirst(elcourseAttached);
                        }
                    }
                }
                //remove those courses from the database
                while (toRemove.Count > 0)
                {
                    ElectiveListCourse removeme = toRemove.First();
                    toRemove.RemoveFirst();
                    Request <ElectiveListCourse> .Delete(removeme.ID, "A", "B");
                }
                //clear the list
                electivelist.courses = new List <ElectiveListCourse>();
                //add the existing courses to the database
                foreach (ElectiveListCourse elcourse in ElectiveListCourses)
                {
                    ElectiveListCourse elcourseAttached = null;;
                    if (elcourse.ID > 0)
                    {
                        elcourseAttached = Request <ElectiveListCourse> .GetItemByID(elcourse.ID, "A", "B");

                        Request <ElectiveListCourse> .Update(elcourseAttached, elcourse, "A", "B");
                    }
                    else
                    {
                        if (courses.Find(elcourse.courseID) != null)
                        {
                            int id = Request <ElectiveListCourse> .Add(elcourse, "A", "B");

                            elcourseAttached = Request <ElectiveListCourse> .GetItemByID(id, "A", "B");
                        }
                    }
                    if (elcourseAttached != null)
                    {
                        electivelist.courses.Add(elcourseAttached);
                    }
                }
                Request <ElectiveList> .Update(elistAttached, electivelist, "A", "B");

                return(RedirectToAction("Index"));
            }
            if (ElectiveListCourses != null)
            {
                foreach (ElectiveListCourse course in ElectiveListCourses)
                {
                    if (course.courseID > 0)
                    {
                        course.course = Request <Course> .GetItemByID(course.courseID, "A", "B");
                    }
                }
            }
            electivelist.courses = ElectiveListCourses.ToList();
            return(View(electivelist));
        }
Esempio n. 2
0
        public ActionResult Edit(ElectiveList electivelist, IEnumerable <ElectiveListCourse> ElectiveListCourses)
        {
            if (ModelState.IsValid)
            {
                //ElectiveList elistAttached = electiveLists.Where(elist => elist.ID == electivelist.ID).First();
                ElectiveList elistAttached = _electiveListProducer.Get(new ElectiveList()
                {
                    ID = electivelist.ID
                });
                electivelist.courses = elistAttached.courses;

                if (ElectiveListCourses == null)
                {
                    ElectiveListCourses = new List <ElectiveListCourse>();
                }

                //figure out the courses that were removed from the list
                LinkedList <ElectiveListCourse> toRemove = new LinkedList <ElectiveListCourse>();
                foreach (ElectiveListCourse course in elistAttached.courses)
                {
                    if (course.ID > 0)
                    {
                        if (!ElectiveListCourses.Contains(course))
                        {
                            //ElectiveListCourse elcourseAttached = electiveListCourses.Where(reqc => reqc.ID == course.ID).First();
                            ElectiveListCourse elcourseAttached = _electiveListCourseProducer.Get(new ElectiveListCourse()
                            {
                                ID = course.ID
                            });
                            toRemove.AddFirst(elcourseAttached);
                        }
                    }
                }
                //remove those courses from the database
                while (toRemove.Count > 0)
                {
                    ElectiveListCourse removeme = toRemove.First();
                    toRemove.RemoveFirst();
                    //electiveListCourses.Remove(removeme);
                    _electiveListCourseProducer.Remove(removeme);
                }
                //clear the list
                electivelist.courses.Clear();
                //add the existing courses to the database
                foreach (ElectiveListCourse elcourse in ElectiveListCourses)
                {
                    ElectiveListCourse elcourseAttached = null;;
                    if (elcourse.ID > 0)
                    {
                        //elcourseAttached = electiveListCourses.Where(reqc => reqc.ID == elcourse.ID).First();
                        elcourseAttached = _electiveListCourseProducer.Get(new ElectiveListCourse()
                        {
                            ID = elcourse.ID
                        });
                        //electiveListCourses.UpdateValues(elcourseAttached, elcourse);
                        _electiveListCourseProducer.Update(elcourse);
                    }
                    else
                    {
                        //if (courses.Find(elcourse.courseID) != null)
                        if (_courseProducer.Get(new Course()
                        {
                            ID = elcourse.courseID
                        }) != null)
                        {
                            //electiveListCourses.Add(elcourse);
                            //electiveListCourses.SaveChanges();
                            _electiveListCourseProducer.Create(elcourse);
                            //elcourseAttached = electiveListCourses.Where(reqc => reqc.ID == elcourse.ID).First();
                            elcourseAttached = _electiveListCourseProducer.Get(new ElectiveListCourse()
                            {
                                ID = elcourse.ID
                            });
                        }
                    }
                    if (elcourseAttached != null)
                    {
                        electivelist.courses.Add(elcourseAttached);
                    }
                }
                //electiveLists.UpdateValues(elistAttached, electivelist);
                //electiveLists.SaveChanges();
                _electiveListProducer.Update(electivelist);
                return(RedirectToAction("Index"));
            }
            if (ElectiveListCourses != null)
            {
                foreach (ElectiveListCourse course in ElectiveListCourses)
                {
                    if (course.courseID > 0)
                    {
                        //course.course = courses.Find(course.courseID);
                        course.course = _courseProducer.Get(new Course()
                        {
                            ID = course.courseID
                        });
                    }
                }
            }
            electivelist.courses = ElectiveListCourses.ToList();
            return(View(electivelist));
        }