Example #1
0
 private void ValidateCourses()
 {
     foreach (var course in Courses)
     {
         //clear prerequisites before recursively checking for circular reference
         PrerequisitesCourseList.Clear();
         CheckForPrerequisiteCourse(course);
     }
 }
Example #2
0
        private void CheckForPrerequisiteCourse(ICollegeCourse course)
        {
            if (course.HasPrerequisite)
            {
                var exists = PrerequisitesCourseList.Exists(c => c == course.Prerequisite);
                if (exists)
                {
                    throw new CircularPrerequisiteReferenceException(course);
                }

                PrerequisitesCourseList.Add(course);
                CheckForPrerequisiteCourse(course.Prerequisite);
            }
        }