From c07247bb66a3bf340dce1a2eb85fac5c0835c3cf Mon Sep 17 00:00:00 2001 From: Tim Young Date: Mon, 14 Aug 2017 16:13:17 -0500 Subject: [PATCH] Pieces for testing and tracking status of homework checking. --- EduNetworkBuilder/NB.cs | 1 + EduNetworkBuilder/Network.cs | 21 ++++++++++++++++++- .../PersonProfileForm.Designer.cs | 13 ++++++++++++ EduNetworkBuilder/PersonProfileForm.cs | 17 +++++++++++++++ 4 files changed, 51 insertions(+), 1 deletion(-) diff --git a/EduNetworkBuilder/NB.cs b/EduNetworkBuilder/NB.cs index 15b2d41..c4178a1 100644 --- a/EduNetworkBuilder/NB.cs +++ b/EduNetworkBuilder/NB.cs @@ -84,6 +84,7 @@ namespace EduNetworkBuilder Level6_NeedVLANs, Level6_SwitchedUp, } + public enum HomeworkSolvedStatus { NeverChecked, CheckedFailed, CheckedSucceeded } public enum DebugPausePoint { none=0, packet_create=1, packet_kill=2, packet_in=4, packet_out=8, packet_duplicate=16, all=63, dump=256, pause=512} diff --git a/EduNetworkBuilder/Network.cs b/EduNetworkBuilder/Network.cs index 8cba3e0..88a5b4e 100644 --- a/EduNetworkBuilder/Network.cs +++ b/EduNetworkBuilder/Network.cs @@ -66,6 +66,8 @@ namespace EduNetworkBuilder private List PacketImages = new List(); private List PingTestStats = new List(); + public HomeworkSolvedStatus HomeworkStatus = HomeworkSolvedStatus.NeverChecked; + /// /// WhatFrom: If we are launched from a homework, we remember it here. /// @@ -243,6 +245,9 @@ namespace EduNetworkBuilder case "sortorder": double.TryParse(Individual.InnerText, out SortOrder); break; + case "homeworkstatus": + HomeworkStatus = NB.ParseEnum(Individual.InnerText); + break; case "startinghelplevel": StartingHelpLevel = NB.ParseEnum(Individual.InnerText); HintsToDisplay = StartingHelpLevel; @@ -357,7 +362,9 @@ namespace EduNetworkBuilder writer.WriteElementString("startinghelplevel", StartingHelpLevel.ToString()); writer.WriteElementString("vlansenabled", VLANsEnabled.ToString()); writer.WriteElementString("VLANPacketColors", VLANPacketColors.ToString()); - if(!StraightToFile) + if(HomeworkStatus != HomeworkSolvedStatus.NeverChecked) + writer.WriteElementString("HomeworkStatus", HomeworkStatus.ToString()); + if (!StraightToFile) writer.WriteElementString("PuzzleName", PuzzleName); //Save all the devices for (int loop = 0; loop < NetComponents.Count; loop++) @@ -1771,6 +1778,18 @@ namespace EduNetworkBuilder return b; } + + /// + /// This func tries to non-visually process all the tests, seeing if the network is + /// "solved." This is for homework that is "submitted." + /// + public void CheckThatHomeworkIsSolved() + { + foreach(NetTest NT in NetTests) + { + + } + } } } diff --git a/EduNetworkBuilder/PersonProfileForm.Designer.cs b/EduNetworkBuilder/PersonProfileForm.Designer.cs index 42c4f67..a67dc67 100644 --- a/EduNetworkBuilder/PersonProfileForm.Designer.cs +++ b/EduNetworkBuilder/PersonProfileForm.Designer.cs @@ -70,6 +70,7 @@ this.tvClasswork = new System.Windows.Forms.TreeView(); this.btnExit = new System.Windows.Forms.Button(); this.cbTeacherAutoDHCP = new System.Windows.Forms.CheckBox(); + this.bthAutoTestStudentHomework = new System.Windows.Forms.Button(); this.tcTabControl.SuspendLayout(); this.TabProfile.SuspendLayout(); this.TabClasswork.SuspendLayout(); @@ -379,6 +380,7 @@ // // TabStudents // + this.TabStudents.Controls.Add(this.bthAutoTestStudentHomework); this.TabStudents.Controls.Add(this.btnReadAllStudentHomework); this.TabStudents.Controls.Add(this.btnAllHomeworkToStudents); this.TabStudents.Location = new System.Drawing.Point(4, 25); @@ -509,6 +511,16 @@ this.cbTeacherAutoDHCP.UseVisualStyleBackColor = true; this.cbTeacherAutoDHCP.CheckedChanged += new System.EventHandler(this.cbTeacherAutoDHCP_CheckedChanged); // + // bthAutoTestStudentHomework + // + this.bthAutoTestStudentHomework.Location = new System.Drawing.Point(23, 108); + this.bthAutoTestStudentHomework.Name = "bthAutoTestStudentHomework"; + this.bthAutoTestStudentHomework.Size = new System.Drawing.Size(207, 23); + this.bthAutoTestStudentHomework.TabIndex = 8; + this.bthAutoTestStudentHomework.Text = "Auto-test homework"; + this.bthAutoTestStudentHomework.UseVisualStyleBackColor = true; + this.bthAutoTestStudentHomework.Click += new System.EventHandler(this.bthAutoTestStudentHomework_Click); + // // PersonProfileForm // this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F); @@ -578,5 +590,6 @@ private System.Windows.Forms.Button btnReadAllStudentHomework; private System.Windows.Forms.Button btnExportStudentPasswords; private System.Windows.Forms.CheckBox cbTeacherAutoDHCP; + private System.Windows.Forms.Button bthAutoTestStudentHomework; } } \ No newline at end of file diff --git a/EduNetworkBuilder/PersonProfileForm.cs b/EduNetworkBuilder/PersonProfileForm.cs index 228879f..f070ef5 100644 --- a/EduNetworkBuilder/PersonProfileForm.cs +++ b/EduNetworkBuilder/PersonProfileForm.cs @@ -989,5 +989,22 @@ namespace EduNetworkBuilder { CurrentUser.UserSettings.AutoDHCPAllMachinesAtNetworkLoad = cbTeacherAutoDHCP.Checked; } + + private void bthAutoTestStudentHomework_Click(object sender, EventArgs e) + { + if (CurrentUser == null) return; + //Test all student's homework that is ungraded. + foreach(PersonClass student in CurrentUser.Students) + { + foreach(SchoolworkClass homework in student.Projects) + { + if(homework.IsSumbitted && !homework.IsGraded) + { + //We only need to test homework that is submitted and not graded. + + } + } + } + } } } \ No newline at end of file