From e8d62bc9140b3164b923e816e3420a25b6db268a Mon Sep 17 00:00:00 2001 From: Tim Young Date: Wed, 2 Aug 2017 12:17:20 -0500 Subject: [PATCH] Give homework and print stats --- EduNetworkBuilder/PersonClass.cs | 11 +++++++++++ EduNetworkBuilder/PersonProfileForm.cs | 18 +++++++++++++++++- .../Resources/languages/edustrings.resx | 4 ++++ EduNetworkBuilder/SchoolworkClass.cs | 19 +++++++++++++++++++ 4 files changed, 51 insertions(+), 1 deletion(-) diff --git a/EduNetworkBuilder/PersonClass.cs b/EduNetworkBuilder/PersonClass.cs index a231643..4e58e54 100644 --- a/EduNetworkBuilder/PersonClass.cs +++ b/EduNetworkBuilder/PersonClass.cs @@ -218,5 +218,16 @@ namespace EduNetworkBuilder } #endregion + public bool AddHomework(SchoolworkClass ToAdd) + { + //Check to see if we already exist + foreach(SchoolworkClass one in Projects) + { + if (one.ThisID == ToAdd.ThisID) return false; + } + Projects.Add(ToAdd); + return true; + } + } } diff --git a/EduNetworkBuilder/PersonProfileForm.cs b/EduNetworkBuilder/PersonProfileForm.cs index 215ee85..f1e3d3f 100644 --- a/EduNetworkBuilder/PersonProfileForm.cs +++ b/EduNetworkBuilder/PersonProfileForm.cs @@ -119,6 +119,7 @@ namespace EduNetworkBuilder } catch(Exception e) { + MessageBox.Show(e.ToString()); CurrentUser = null; Close(); //we did not succeed. Exit out } @@ -696,7 +697,22 @@ namespace EduNetworkBuilder private void btnHWGive_Click(object sender, EventArgs e) { - + int NumStudents = 0; + int NumGiven = 0; + int NumAlready = 0; + //Create a new homework class for each student, containing this homework + if (ViewedSchoolwork == null) return;//We do not have homework selected + foreach(PersonClass PC in CurrentUser.Students) + { + NumStudents++; + SchoolworkClass SWC = ViewedSchoolwork.Clone(); + SWC.isMaster = true; //It is homework + SWC.IsSumbitted = false; //It has not yet been submitted + bool didit = PC.AddHomework(SWC); + if (didit) NumGiven++; + else NumAlready++; + } + MessageBox.Show(string.Format(NB.Translate("PPF_GiveHWStats"),"\n\t" + NumStudents, "\n\t" + NumGiven, "\n\t" + NumAlready )); } private void btnHWSave_Click(object sender, EventArgs e) diff --git a/EduNetworkBuilder/Resources/languages/edustrings.resx b/EduNetworkBuilder/Resources/languages/edustrings.resx index b84c5ec..697f2d0 100644 --- a/EduNetworkBuilder/Resources/languages/edustrings.resx +++ b/EduNetworkBuilder/Resources/languages/edustrings.resx @@ -1793,6 +1793,10 @@ Generate Files PPF_GenerateFiles = Generate Files + + Result: {0} Students {1} Given {2} Already had this homework + PPF_GiveHWStats = Result: {0} Students {1} Given {2} Already had this homework + Give PPF_HWGive = Give diff --git a/EduNetworkBuilder/SchoolworkClass.cs b/EduNetworkBuilder/SchoolworkClass.cs index 15d2409..7822d20 100644 --- a/EduNetworkBuilder/SchoolworkClass.cs +++ b/EduNetworkBuilder/SchoolworkClass.cs @@ -38,6 +38,8 @@ namespace EduNetworkBuilder public DateTime SaveDate; //The date this file was saved. public UInt64 ThisID { get; protected set; } + protected SchoolworkClass() { } + public SchoolworkClass(XmlNode TheNode) { Load(TheNode); @@ -53,6 +55,23 @@ namespace EduNetworkBuilder isMaster = true; } + public SchoolworkClass Clone() + { + SchoolworkClass dest = new SchoolworkClass(); + Clone(this, dest); + return dest; + } + public static void Clone(SchoolworkClass source, SchoolworkClass dest) + { + dest.Class = source.Class; + dest.Description = source.Description; + dest.DueDate = source.DueDate; + dest.isMaster = source.isMaster; + dest.IsSumbitted = source.IsSumbitted; + dest.Name = source.Name; + dest.SaveDate = source.SaveDate; + dest.theProject = source.theProject.Clone(); + } #region Load and Save //Load and save functions