Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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));
        }
Ejemplo n.º 3
0
        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);
                }
            }
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
 public void PushStack(SubjectStack s)
 {
     after.Add(s);
     Console.WriteLine("Pushed sub: " + s.subId + " " + s.subName);
 }