private void ValidateCourses() { foreach (var course in Courses) { //clear prerequisites before recursively checking for circular reference PrerequisitesCourseList.Clear(); CheckForPrerequisiteCourse(course); } }
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); } }