From 20e9ab8cb97ff030652e1f0887fbcb6c725eb9bf Mon Sep 17 00:00:00 2001 From: Andrew Welker Date: Thu, 16 Apr 2020 15:33:44 -0600 Subject: [PATCH] fixes issues determining Interface type --- .../Bridges/BridgeBase.cs | 49 +++++++++++-------- 1 file changed, 28 insertions(+), 21 deletions(-) diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Bridges/BridgeBase.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Bridges/BridgeBase.cs index e7e664be..a2d6d077 100644 --- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Bridges/BridgeBase.cs +++ b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Bridges/BridgeBase.cs @@ -110,30 +110,37 @@ namespace PepperDash.Essentials.Core.Bridges if (device == null) continue; Debug.Console(1, this, "Linking Device: '{0}'", device.Key); - - if (device.GetType().GetCType().IsAssignableFrom(typeof (IBridge))) + if (device is IBridge) // Check for this first to allow bridges in plugins to override existing bridges that apply to the same type. { - var bridge = device as IBridge; - - if (bridge != null) bridge.LinkToApi(Eisc, d.JoinStart, d.JoinMapKey); - continue; + Debug.Console(2, this, "'{0}' is IBridge", device.Key); + (device as IBridge).LinkToApi(Eisc, d.JoinStart, d.JoinMapKey); } - - if (!device.GetType().GetCType().IsAssignableFrom(typeof (IBridgeAdvanced))) continue; - - var bridgeAdvanced = device as IBridgeAdvanced; - if (bridgeAdvanced != null) bridgeAdvanced.LinkToApi(Eisc, d.JoinStart, d.JoinMapKey, this); - - //if (device is IBridge) // Check for this first to allow bridges in plugins to override existing bridges that apply to the same type. + else if (device is IBridgeAdvanced) + { + Debug.Console(2, this, "'{0}' is IBridgeAdvanced", device.Key); + (device as IBridgeAdvanced).LinkToApi(Eisc, d.JoinStart, d.JoinMapKey, this); + } + //if (device.GetType().GetCType().IsAssignableFrom(typeof (IBridge))) //{ - // (device as IBridge).LinkToApi(Eisc, d.JoinStart, d.JoinMapKey); + // var bridge = device as IBridge; + + // if (bridge == null) + // continue; + // Debug.Console(2, this, "Linking device {0} as IBridge"); + // bridge.LinkToApi(Eisc, d.JoinStart, d.JoinMapKey); // continue; //} - //else if (device is IBridgeAdvanced) - //{ - // Debug.Console(2, this, "'{0}' is IBridgeAdvanced", device.Key); - // (device as IBridgeAdvanced).LinkToApi(Eisc, d.JoinStart, d.JoinMapKey, this); - //} + + //if (!device.GetType().GetCType().IsAssignableFrom(typeof (IBridgeAdvanced))) continue; + + //var bridgeAdvanced = device as IBridgeAdvanced; + + //if (bridgeAdvanced == null) continue; + //Debug.Console(2, this, "Linking device {0} as IBridgeAdvanced"); + //bridgeAdvanced.LinkToApi(Eisc, d.JoinStart, d.JoinMapKey, this); + } + Debug.Console(1, this, "Devices Linked."); + // //else if (device is PepperDash.Essentials.Core.Monitoring.SystemMonitorController) //{ // (device as PepperDash.Essentials.Core.Monitoring.SystemMonitorController).LinkToApi(Eisc, d.JoinStart, d.JoinMapKey); @@ -234,9 +241,9 @@ namespace PepperDash.Essentials.Core.Bridges // (device as C2nRthsController).LinkToApi(Eisc, d.JoinStart, d.JoinMapKey); // continue; //} - } + //} - Debug.Console(1, this, "Devices Linked."); + }); }