private void GetListHelper(CourseTreeNode Node) { foreach (CourseTreeNode Child in Node.Children) { GetListHelper(Child); } ListResult.Add(Node.Course); }
//Returns the node for a particular course public CourseTreeNode GetNode(CourseTreeNode curr, int CourseID) { if (curr.Course.Id == CourseID) { return(curr); } else { foreach (CourseTreeNode Node in curr.Children) { return(GetNode(Node, CourseID)); } } return(Root); }
public CourseTreeNode getRoot() { if (Root == null) { //Create a dummy course to serve as the root Course dummy = new Course(); dummy.Id = 00000; dummy.Number = 000; dummy.Department = "CSC"; dummy.Title = "Root"; dummy.Description = "Root course"; dummy.Units = 0.0M; Root = new CourseTreeNode(this, dummy); } return(Root); }
//add a node to the tree public void AddNode(CourseTreeNode Node) { //Connect to parents if (Node.Course.Prerequisites.Count == 0) { Node.Parents.Add(getRoot()); Root.Children.Add(Node); } else { foreach (Course req in Node.Course.Prerequisites) { CourseTreeNode Temp = GetNode(getRoot(), req.Id); Node.Parents.Add(Temp); Temp.Children.Add(Node); } } }
//Add a course for which this is a prerequisite to the children list public void AddRequiredFor(CourseTreeNode Course) { Children.Add(Course); }
//Add a prerequisite course to the list of parents public void AddPrereq(CourseTreeNode Prereq) { Parents.Add(Prereq); }