Пример #1
0
        protected virtual void addCourseButton_Click(object sender, EventArgs e)
        {
            try
            {
                //Attempt to create course object
                StringCourseBuilder builder = new Course.StringCourseBuilder(courseNameTB.Text, courseDescriptionTB.Text,
                                                                             coursePrefixTB.Text, courseIDTB.Text, courseCreditsTB.Text, courses);
                builder.CourseDetails = detailsForm.courseDetails;
                builder.ValidTerms    = validSemestersTB.Text;
                builder.Dependencies  = courseDependenciesTB.Text;
                builder.Copendencies  = courseCopendenciesTB.Text;
                course = builder.build();

                //check to make sure course ref does not exist
                if (courses.Contains(course))
                {
                    course = null;
                    throw new Exception("Course already exists!");
                }

                this.Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
Пример #2
0
        protected override void addCourseButton_Click(object sender, EventArgs e)
        {
            try
            {
                //Attempt to create course object
                StringCourseBuilder builder = new Course.StringCourseBuilder(courseNameTB.Text, courseDescriptionTB.Text,
                                                                             coursePrefixTB.Text, courseIDTB.Text, courseCreditsTB.Text, courses);
                builder.ValidTerms    = validSemestersTB.Text;
                builder.Dependencies  = courseDependenciesTB.Text;
                builder.Copendencies  = courseCopendenciesTB.Text;
                builder.CourseDetails = detailsEditForm.courseDetails;
                Course editedCourse = builder.build();

                //check to ensure course ref is the same
                if (!editedCourse.Equals(editCourse))
                {
                    //if not, ensure it does not already exist in the course list
                    if (courses.Contains(editedCourse))
                    {
                        throw new Exception("Course already exists!");
                    }
                }

                //find all dependees that will need there dependent ref updated
                List <Course> dependenciesToModify = new List <Course>();
                List <Course> copendenciesToModify = new List <Course>();

                foreach (Course course in courses)
                {
                    if (course.dependencies.Contains(editCourse))
                    {
                        dependenciesToModify.Add(course);
                    }
                    if (course.copendencies.Contains(editCourse))
                    {
                        copendenciesToModify.Add(editCourse);
                    }
                }

                //add edited course to list
                courses.Add(editedCourse);

                if (!(dependenciesToModify.Count == 0 && copendenciesToModify.Count == 0))
                {
                    //prompt the user to ensure continue
                    String message =
                        "Warning: This will overide the course dependent for the following courses from\n"
                        + editCourse.courseReference + " to " + editedCourse.courseReference + ", Continue?\n"
                        + "Course List: ";

                    foreach (Course course in dependenciesToModify)
                    {
                        message += course.courseReference + ", ";
                    }
                    foreach (Course course in copendenciesToModify)
                    {
                        message += course.courseReference + ", ";
                    }
                    message = message.TrimEnd(',');

                    PromptWindow confirm = new PromptWindow(message);
                    this.SuspendLayout();
                    confirm.ShowDialog();

                    // if ok, overrite, else cancel
                    if (confirm.Result)
                    {
                        foreach (Course course in dependenciesToModify)
                        {
                            CourseBuilder newCourse = new Course.CourseBuilder(course, courses);
                            newCourse.removeDependency(editCourse);
                            newCourse.addDependency(editedCourse);

                            courses.Remove(course);
                            courses.Add(newCourse.build());
                        }
                        foreach (Course course in copendenciesToModify)
                        {
                            CourseBuilder newCourse = new Course.CourseBuilder(course, courses);
                            newCourse.removeCopendency(editCourse);
                            newCourse.addCopendency(editedCourse);

                            courses.Remove(course);
                            courses.Add(newCourse.build());
                        }
                    }
                    else
                    {
                        courses.Remove(editedCourse);
                        return;
                    }
                }

                //remove the course from the list
                courses.Remove(editCourse);

                this.Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }