From 217371a96f1a5b8aa35746892adfe08ec89b0f96 Mon Sep 17 00:00:00 2001 From: Tim Young Date: Wed, 2 Aug 2017 14:37:18 -0500 Subject: [PATCH] Show student homework --- EduNetworkBuilder/PersonClass.cs | 56 ++++++++++++++++++++++++++ EduNetworkBuilder/PersonProfileForm.cs | 17 +++----- 2 files changed, 61 insertions(+), 12 deletions(-) diff --git a/EduNetworkBuilder/PersonClass.cs b/EduNetworkBuilder/PersonClass.cs index 4e58e54..fe779e5 100644 --- a/EduNetworkBuilder/PersonClass.cs +++ b/EduNetworkBuilder/PersonClass.cs @@ -5,6 +5,7 @@ using System.Text; using System.Threading.Tasks; using System.Xml; using System.IO; +using System.Windows.Forms; namespace EduNetworkBuilder { @@ -229,5 +230,60 @@ namespace EduNetworkBuilder return true; } + /// + /// Organize the projects into a nice project tree. + /// + /// + public TreeNode WorkTree(TreeNode theTop=null) + { + Projects.Sort((q, p) => p.DueDate.CompareTo(q.DueDate)); + + List DrawFrom = new List(); + List MasterList = new List(); + + DrawFrom.AddRange(Projects); + for (int i = DrawFrom.Count - 1; i >= 0; i--) + { + if (DrawFrom[i].isMaster) + { + MasterList.Add(DrawFrom[i]); + DrawFrom.RemoveAt(i); + } + } + //Now, all the masters are in Master, and submitted projects are in DrawFrom. + + TreeNode Node; + TreeNode Top; + TreeNode Master; + //We have a class tree + if (theTop == null) + { + Top = new TreeNode(NB.Translate("PPF_Class")); + Top.Tag = "Class"; //Do not translate this + } + else + { + Top = theTop; + } + foreach(SchoolworkClass MasterSW in MasterList) + { + Master = new TreeNode(MasterSW.Name); + Master.Tag = MasterSW; + + for (int i = DrawFrom.Count -1; i>=0; i--) + { + if(DrawFrom[i].ThisID == MasterSW.ThisID) + { + Node = new TreeNode(DrawFrom[i].Name); + Node.Tag = DrawFrom[i]; + Master.Nodes.Add(Node); + } + } + Top.Nodes.Add(Master); + } + + return Top; + } + } } diff --git a/EduNetworkBuilder/PersonProfileForm.cs b/EduNetworkBuilder/PersonProfileForm.cs index c364e65..928aa1f 100644 --- a/EduNetworkBuilder/PersonProfileForm.cs +++ b/EduNetworkBuilder/PersonProfileForm.cs @@ -254,24 +254,17 @@ namespace EduNetworkBuilder { Node = new TreeNode(PC.UserName); Node.Tag = PC; + PC.WorkTree(Node); Top.Nodes.Add(Node); } } private void UpdateStudentFormFromUser() { - TreeNode Node; - //We have a class tree - Node = new TreeNode(NB.Translate("PPF_Class")); - Node.Tag = "Class"; //Do not translate this - TreeNode Top = Node; - tvClasswork.Nodes.Add(Node); - foreach (SchoolworkClass SWC in CurrentUser.Projects) - { - Node = new TreeNode(SWC.Name); - Node.Tag = SWC; //Store the schoolwork record in with the node - Top.Nodes.Add(Node); - } + if (CurrentUser == null) return; + TreeNode Top = CurrentUser.WorkTree(); + if (Top != null) + tvClasswork.Nodes.Add(Top); } private void SaveUserInfoFromForm()