From fc39ba71c672c82598adc5da80522bfdc2a0ce3d Mon Sep 17 00:00:00 2001 From: Tim Young Date: Tue, 8 Aug 2017 17:45:45 -0500 Subject: [PATCH] Import homework for teachers. Let them export all the homework for a class and import it for another class --- EduNetworkBuilder/PersonClass.cs | 51 +++++++++++++++---- .../Resources/languages/edustrings.resx | 12 +++++ EduNetworkBuilder/SchoolworkClass.cs | 8 ++- 3 files changed, 61 insertions(+), 10 deletions(-) diff --git a/EduNetworkBuilder/PersonClass.cs b/EduNetworkBuilder/PersonClass.cs index fb9a191..0ec6f23 100644 --- a/EduNetworkBuilder/PersonClass.cs +++ b/EduNetworkBuilder/PersonClass.cs @@ -236,6 +236,7 @@ namespace EduNetworkBuilder if (one.ThisID == ToAdd.ThisID) return false; } Projects.Add(ToAdd); + if (ToAdd.ThisID >= UserSettings.NextID) UserSettings.NextID = (uint)(ToAdd.ThisID + 1); return true; } @@ -291,20 +292,51 @@ namespace EduNetworkBuilder int totalHW =0; int Skipped = 0; int imported = 0; - int replaced = 0; - foreach (SchoolworkClass one in WhatWeRead) + if (isAdmin) { - totalHW++; - if(isAdmin) + Dictionary InitialList = new Dictionary(); + //use a check-box list + foreach (SchoolworkClass one in WhatWeRead) { - //use a check-box list //Use due date and name + already exists (name / ID) - //they check if they want to import - //We never overwrite, we make a new one, with new ID + string Info = one.DueDate.ToShortDateString(); + Info += "\t" + one.Name; + if (HasHomework(one, true)) Info += " * " + string.Format(NB.Translate("PC_HWHasID"),one.ThisID); + if (HasHomework(one, false)) Info += " ** " + string.Format(NB.Translate("PC_HWHasName")); + InitialList.Add(Info, false); } - else + Dictionary ResponseList = NB.CheckPromptBox(InitialList, "Import", Properties.Resources.NBIco); + + if (ResponseList == null) return; //They canceled out. + + int index = 0; + foreach(string One in ResponseList.Keys) { - if(AddHomework(one)) + totalHW++; + if (ResponseList[One]) + { //We are supposed to import it. + if (HasHomework(WhatWeRead[index], true)) + { //We already have this ID. Get a new ID + WhatWeRead[index].ChangeID(this); //Pass in this user, whoever we are + } + //Now we can add it without issue. + AddHomework(WhatWeRead[index]); + imported++; + } + else + Skipped++; + index++; + } + //they check if they want to import + //We never overwrite, we make a new one, with new ID + } + else + { + foreach (SchoolworkClass one in WhatWeRead) + { + totalHW++; + + if (AddHomework(one)) { imported++; } @@ -314,6 +346,7 @@ namespace EduNetworkBuilder } } } + MessageBox.Show(string.Format(NB.Translate("PC_HWFileImportStats"),"\n\t" + totalHW, "\n\t" + imported, "\n\t" + Skipped)); } else { diff --git a/EduNetworkBuilder/Resources/languages/edustrings.resx b/EduNetworkBuilder/Resources/languages/edustrings.resx index 9c2b67c..0d0028b 100644 --- a/EduNetworkBuilder/Resources/languages/edustrings.resx +++ b/EduNetworkBuilder/Resources/languages/edustrings.resx @@ -1869,4 +1869,16 @@ Save _Save = Save + + Results: {0} total homework {1} imported {2} skipped + PC_HWFileImportStats = Results: {0} total homework {1} imported {2} skipped + + + ID {0} Already exists. + PC_HWHasID = ID {0} Already exists. + + + Name already exists. + PC_HWHasName = Name already exists. + \ No newline at end of file diff --git a/EduNetworkBuilder/SchoolworkClass.cs b/EduNetworkBuilder/SchoolworkClass.cs index 6bc2cd3..fa2687e 100644 --- a/EduNetworkBuilder/SchoolworkClass.cs +++ b/EduNetworkBuilder/SchoolworkClass.cs @@ -136,7 +136,7 @@ namespace EduNetworkBuilder { switch (Individual.Name.ToLower()) { - case "EduNetworkBuilderSchoolwork": + case "edunetworkbuilderschoolwork": case "schoolwork": ThisList.AddRange(Load(Individual)); AddedList = true; @@ -221,6 +221,12 @@ namespace EduNetworkBuilder writer.Close(); } + public void ChangeID(PersonClass WhoFor) + { + if (WhoFor != null && WhoFor.UserSettings != null) + ThisID = WhoFor.UserSettings.IssueID(); + } + public void Save(XmlWriter writer) { //Save the language name