private static TreeNode SeeThroughStack(SubjectStack sss) { var dtemp = new TreeNode(sss.subName); dtemp.Tag = sss.subId; foreach (SubjectStack temp in sss.after) { if (!temp.IsLeaf()) { var stemp = SeeThroughStack(temp); stemp.Tag = temp.subId; dtemp.Nodes.Add(stemp); } } foreach (SubjectStack temp in sss.after) { if (temp.IsLeaf()) { var stemp = new TreeNode(temp.subName); stemp.Tag = temp.subId; dtemp.Nodes.Add(stemp); } } return(dtemp); }
public static TreeNode GetSubjects() { MultipleChoiceDataSetTableAdapters.SubjectTableAdapter subject = new MultipleChoiceDataSetTableAdapters.SubjectTableAdapter(); List <MultipleChoiceDataSet.SubjectRow> lrow = new List <MultipleChoiceDataSet.SubjectRow>(); foreach (var d in subject.GetData()) { lrow.Add(d); } SubjectStack sub = new SubjectStack(); SubjectStack temp = new SubjectStack(); SortArray(lrow); foreach (var d in lrow) { if (d.Root_id == 0) { sub = new SubjectStack(d.Subject_id, d.Root_id, d.S_name); } else if (d.Root_id == 1) { sub.PushStack(new SubjectStack(d.Subject_id, d.Root_id, d.S_name)); } else { temp = sub.GetSubWithID(d.Root_id, sub.after); //Console.WriteLine(temp.subId); if (temp != null) { temp.PushStack(new SubjectStack(d.Subject_id, d.Root_id, d.S_name)); foreach (SubjectStack test in temp.after) { Console.WriteLine(test.subName); } sub.ReplaceSub(d.Root_id, temp, sub.after); } } } return(SeeThroughStack(sub)); }
public void ReplaceSub(int id, SubjectStack sub, List <SubjectStack> temp) { for (int i = 0; i < temp.Count; i++) { SubjectStack s = temp[i]; if (s.subId != id) { ReplaceSub(id, sub, s.after); } } for (int i = 0; i < temp.Count; i++) { SubjectStack s = temp[i]; if (s.subId == id) { temp[i].after = sub.after; Console.WriteLine("Removed sub: " + s.subId + " " + s.subName); } } }
public SubjectStack GetSubWithID(int id, List <SubjectStack> temp) { foreach (SubjectStack s in temp) { if (s.subId == id) { foreach (SubjectStack ss in s.after) { Console.WriteLine("Found sub: " + ss.subId + " " + ss.subName); } return(s); } } SubjectStack ret = new SubjectStack(); foreach (SubjectStack s in temp) { if (s.subId != id) { return(GetSubWithID(id, s.after)); } } return(ret); }
public void PushStack(SubjectStack s) { after.Add(s); Console.WriteLine("Pushed sub: " + s.subId + " " + s.subName); }