From 00f886080fd85217d50658b150b4fc42e5817c34 Mon Sep 17 00:00:00 2001 From: Tim Young Date: Wed, 16 Aug 2017 10:47:08 -0500 Subject: [PATCH] Get invisible Network to complet auto dhcp request at beginning --- EduNetworkBuilder/NB.cs | 17 ++++++++++++- EduNetworkBuilder/Network.cs | 37 ++++++++++++++++++++++++++--- EduNetworkBuilder/NetworkBuilder.cs | 17 +++++++++++++ 3 files changed, 67 insertions(+), 4 deletions(-) diff --git a/EduNetworkBuilder/NB.cs b/EduNetworkBuilder/NB.cs index c4178a1..613aca6 100644 --- a/EduNetworkBuilder/NB.cs +++ b/EduNetworkBuilder/NB.cs @@ -410,8 +410,23 @@ namespace EduNetworkBuilder BuilderWindow myWin = (BuilderWindow)Application.OpenForms["BuilderWindow"]; if (myWin == null) return null; if (myWin.GameRandomGen == null) return null; - return myWin.myNetwork; + return myWin.GetNetwork(); } + + public static void RegisterInvisibleNetwork(Network ToRegister) + { + BuilderWindow myWin = (BuilderWindow)Application.OpenForms["BuilderWindow"]; + if (myWin == null) return; + myWin.RegisterInisibleNet(ToRegister); + } + + public static void UnregisterInvisibleNetwork() + { + BuilderWindow myWin = (BuilderWindow)Application.OpenForms["BuilderWindow"]; + if (myWin == null) return; + myWin.UnregisterInvisibleNet(); + } + public static void MarkToUpdate() { BuilderWindow myWin = (BuilderWindow)Application.OpenForms["BuilderWindow"]; diff --git a/EduNetworkBuilder/Network.cs b/EduNetworkBuilder/Network.cs index 91c0771..1efc618 100644 --- a/EduNetworkBuilder/Network.cs +++ b/EduNetworkBuilder/Network.cs @@ -1772,6 +1772,16 @@ namespace EduNetworkBuilder return b; } + public void DumpInvisibleNetMessages() + { + List messages = GetMessageStrings(); + foreach(string one in messages) + { + Console.WriteLine(one); + } + myMessages.Clear(); + } + /// /// This func tries to non-visually process all the tests, seeing if the network is /// "solved." This is for homework that is "submitted." @@ -1779,13 +1789,34 @@ namespace EduNetworkBuilder public HomeworkSolvedStatus CheckThatHomeworkIsSolved() { bool HadIssues = false; - foreach(NetTest NT in NetTests) - { + NB.RegisterInvisibleNetwork(this); + DoAllMarkAsLinked(); + + //do dhcp request on everything. + DoAllDHCP(); + NonVisualProcessPacketsOnce(); //loop until we "timeout" or all packets are done. + DumpInvisibleNetMessages(); + + foreach (NetTest NT in NetTests) + { + //Here we test it. } + NB.UnregisterInvisibleNetwork(); + if(HadIssues) return HomeworkSolvedStatus.CheckedFailed; - return HomeworkSolvedStatus.CheckedSucceeded; + return HomeworkSolvedStatus.NeverChecked; //for now. We want to change this later. Just so we keep re-testing + } + + public void NonVisualProcessPacketsOnce() + { + int counter = 0; + while(counter < 1000 && myPackets.Count >0) + { + Tick(true); //Skip visuals + counter++; + } } } diff --git a/EduNetworkBuilder/NetworkBuilder.cs b/EduNetworkBuilder/NetworkBuilder.cs index 6452ebc..3a5783f 100644 --- a/EduNetworkBuilder/NetworkBuilder.cs +++ b/EduNetworkBuilder/NetworkBuilder.cs @@ -25,6 +25,7 @@ namespace EduNetworkBuilder public DebugPausePoint DebugSetting = DebugPausePoint.none; // public DebugPausePoint DebugSetting = DebugPausePoint.all | DebugPausePoint.dump; public Network myNetwork = new Network(""); + private Network InvisibleNetwork = null; private List Buttons = new List(); private string selectedButton = ""; ToolTip myTooltip = new ToolTip(); @@ -2136,5 +2137,21 @@ namespace EduNetworkBuilder //rebuild menu UpdateMenu(); } + + public Network GetNetwork() + { + if (InvisibleNetwork != null) return InvisibleNetwork; + return myNetwork; + } + + public void RegisterInisibleNet(Network toRegister) + { + InvisibleNetwork = toRegister; + } + + public void UnregisterInvisibleNet() + { + InvisibleNetwork = null; + } } } \ No newline at end of file