diff --git a/EduNetworkBuilder/Network.cs b/EduNetworkBuilder/Network.cs
index 3f3d32c..a5f3f5a 100644
--- a/EduNetworkBuilder/Network.cs
+++ b/EduNetworkBuilder/Network.cs
@@ -733,6 +733,11 @@ namespace EduNetworkBuilder
NetworkDevice ND = DeviceFromName(nt.sHost);
if (ND != null) ND.PowerOff = true;
}
+ if (nt.TheTest == NetTestType.DeviceNeedsUPS && !nt.TaskWasDone)
+ {
+ NetworkDevice ND = DeviceFromName(nt.sHost);
+ if (ND != null) ND.PowerOff = true;
+ }
}
if (report_as_done && PuzzleCount == 0 && PreviouslyUnsolved)
{
@@ -1741,6 +1746,17 @@ namespace EduNetworkBuilder
}
}
+ public void RegisterUPSAdded(string source)
+ {
+ foreach (NetTest one in NetTests)
+ {
+ if (one.sHost == source && one.TheTest == NetTestType.DeviceNeedsUPS)
+ {
+ one.SetDone();
+ }
+ }
+ }
+
/****************************************
* Do On All Devices
* **************************************/
diff --git a/EduNetworkBuilder/NetworkBuilder.cs b/EduNetworkBuilder/NetworkBuilder.cs
index e87f5ce..8ff6420 100644
--- a/EduNetworkBuilder/NetworkBuilder.cs
+++ b/EduNetworkBuilder/NetworkBuilder.cs
@@ -887,6 +887,16 @@ namespace EduNetworkBuilder
pbNetworkView.ContextMenuStrip.Items[index++].Click += pbNetworkView_Replace_Click;
}
}
+ if (myNetwork.ItemHasTest(ReleasedOn.hostname, NetTestType.DeviceNeedsUPS))
+ {
+ if (!myNetwork.ItemTestIsComplete(ReleasedOn.hostname, NetTestType.DeviceNeedsUPS))
+ {
+ //If the item is bad and has not been replaced, then add a context menu to replace it
+ pbNetworkView.ContextMenuStrip.Items.Add(NB.Translate("NB_AddUPS"));
+ pbNetworkView.ContextMenuStrip.Items[index++].Click += pbNetworkView_AddUPS_Click;
+ }
+ }
+
}
}
else //we are locked out.
@@ -989,6 +999,21 @@ namespace EduNetworkBuilder
UpdateVisuals();
}
}
+ //We will still do this for devices that are spraying the network
+ private void pbNetworkView_AddUPS_Click(object sender, EventArgs e)
+ {
+ if (ItemClickedOn != null)
+ {
+ if (ItemClickedOn == null) return;
+ //Changing a UPS makes sure the power is off when done.
+ ItemClickedOn.PowerOff = true;
+ //Mark the replace test as "done"
+ myNetwork.RegisterDeviceReset(ItemClickedOn.hostname); //replacing something powers it off
+
+ myNetwork.RegisterUPSAdded(ItemClickedOn.hostname); //Add the UPS.
+ UpdateVisuals();
+ }
+ }
private void ColorizeDevice(NetworkDevice Item, string Text)
{
diff --git a/EduNetworkBuilder/Resources/languages/edustrings.resx b/EduNetworkBuilder/Resources/languages/edustrings.resx
index b3c87b9..232a4a1 100644
--- a/EduNetworkBuilder/Resources/languages/edustrings.resx
+++ b/EduNetworkBuilder/Resources/languages/edustrings.resx
@@ -2001,6 +2001,10 @@
The device is not responding.
NC_Burned = The device is not responding.
+
+ Add UPS
+ NB_AddUPS = Add UPS
+
Device is Frozen
NT_TstDescriptFrozenDevice