diff --git a/src/PepperDash.Essentials.MobileControl.Messengers/DeviceTypeExtensions/IChannelMessenger.cs b/src/PepperDash.Essentials.MobileControl.Messengers/DeviceTypeExtensions/IChannelMessenger.cs index 3cc382f8..4ba89800 100644 --- a/src/PepperDash.Essentials.MobileControl.Messengers/DeviceTypeExtensions/IChannelMessenger.cs +++ b/src/PepperDash.Essentials.MobileControl.Messengers/DeviceTypeExtensions/IChannelMessenger.cs @@ -8,9 +8,9 @@ namespace PepperDash.Essentials.Room.MobileControl { private readonly IChannel channelDevice; - public IChannelMessenger(string key, string messagePath, Device device) : base(key, messagePath, device) + public IChannelMessenger(string key, string messagePath, IChannel device) : base(key, messagePath, device as IKeyName) { - channelDevice = device as IChannel; + channelDevice = device; } protected override void RegisterActions() diff --git a/src/PepperDash.Essentials.MobileControl.Messengers/DeviceTypeExtensions/IColorMessenger.cs b/src/PepperDash.Essentials.MobileControl.Messengers/DeviceTypeExtensions/IColorMessenger.cs index 021f8a25..86df2590 100644 --- a/src/PepperDash.Essentials.MobileControl.Messengers/DeviceTypeExtensions/IColorMessenger.cs +++ b/src/PepperDash.Essentials.MobileControl.Messengers/DeviceTypeExtensions/IColorMessenger.cs @@ -7,7 +7,7 @@ namespace PepperDash.Essentials.Room.MobileControl public class IColorMessenger : MessengerBase { private readonly IColor colorDevice; - public IColorMessenger(string key, string messagePath, Device device) : base(key, messagePath, device) + public IColorMessenger(string key, string messagePath, IColor device) : base(key, messagePath, device as IKeyName) { colorDevice = device as IColor; } diff --git a/src/PepperDash.Essentials.MobileControl.Messengers/DeviceTypeExtensions/IDPadMessenger.cs b/src/PepperDash.Essentials.MobileControl.Messengers/DeviceTypeExtensions/IDPadMessenger.cs index 1233d0da..4af07703 100644 --- a/src/PepperDash.Essentials.MobileControl.Messengers/DeviceTypeExtensions/IDPadMessenger.cs +++ b/src/PepperDash.Essentials.MobileControl.Messengers/DeviceTypeExtensions/IDPadMessenger.cs @@ -7,9 +7,9 @@ namespace PepperDash.Essentials.Room.MobileControl public class IDPadMessenger : MessengerBase { private readonly IDPad dpadDevice; - public IDPadMessenger(string key, string messagePath, Device device) : base(key, messagePath, device) + public IDPadMessenger(string key, string messagePath, IDPad device) : base(key, messagePath, device as IKeyName) { - dpadDevice = device as IDPad; + dpadDevice = device; } diff --git a/src/PepperDash.Essentials.MobileControl.Messengers/DeviceTypeExtensions/IDvrMessenger.cs b/src/PepperDash.Essentials.MobileControl.Messengers/DeviceTypeExtensions/IDvrMessenger.cs index 2fd4679c..8e286979 100644 --- a/src/PepperDash.Essentials.MobileControl.Messengers/DeviceTypeExtensions/IDvrMessenger.cs +++ b/src/PepperDash.Essentials.MobileControl.Messengers/DeviceTypeExtensions/IDvrMessenger.cs @@ -7,9 +7,9 @@ namespace PepperDash.Essentials.Room.MobileControl public class IDvrMessenger : MessengerBase { private readonly IDvr dvrDevice; - public IDvrMessenger(string key, string messagePath, Device device) : base(key, messagePath, device) + public IDvrMessenger(string key, string messagePath, IDvr device) : base(key, messagePath, device as IKeyName) { - dvrDevice = device as IDvr; + dvrDevice = device; } protected override void RegisterActions() diff --git a/src/PepperDash.Essentials.MobileControl.Messengers/DeviceTypeExtensions/IHasPowerMessenger.cs b/src/PepperDash.Essentials.MobileControl.Messengers/DeviceTypeExtensions/IHasPowerMessenger.cs index 8fe09e75..39ed0e6f 100644 --- a/src/PepperDash.Essentials.MobileControl.Messengers/DeviceTypeExtensions/IHasPowerMessenger.cs +++ b/src/PepperDash.Essentials.MobileControl.Messengers/DeviceTypeExtensions/IHasPowerMessenger.cs @@ -7,9 +7,9 @@ namespace PepperDash.Essentials.Room.MobileControl public class IHasPowerMessenger : MessengerBase { private readonly IHasPowerControl powerDevice; - public IHasPowerMessenger(string key, string messagePath, Device device) : base(key, messagePath, device) + public IHasPowerMessenger(string key, string messagePath, IHasPowerControl device) : base(key, messagePath, device as IKeyName) { - powerDevice = device as IHasPowerControl; + powerDevice = device; } protected override void RegisterActions() diff --git a/src/PepperDash.Essentials.MobileControl.Messengers/DeviceTypeExtensions/INumericMessenger.cs b/src/PepperDash.Essentials.MobileControl.Messengers/DeviceTypeExtensions/INumericMessenger.cs index 490b02b8..69b5bc9d 100644 --- a/src/PepperDash.Essentials.MobileControl.Messengers/DeviceTypeExtensions/INumericMessenger.cs +++ b/src/PepperDash.Essentials.MobileControl.Messengers/DeviceTypeExtensions/INumericMessenger.cs @@ -7,9 +7,9 @@ namespace PepperDash.Essentials.Room.MobileControl public class INumericKeypadMessenger : MessengerBase { private readonly INumericKeypad keypadDevice; - public INumericKeypadMessenger(string key, string messagePath, Device device) : base(key, messagePath, device) + public INumericKeypadMessenger(string key, string messagePath, INumericKeypad device) : base(key, messagePath, device as IKeyName) { - keypadDevice = device as INumericKeypad; + keypadDevice = device; } protected override void RegisterActions() diff --git a/src/PepperDash.Essentials.MobileControl.Messengers/DeviceTypeExtensions/ISetTopBoxControlsMessenger.cs b/src/PepperDash.Essentials.MobileControl.Messengers/DeviceTypeExtensions/ISetTopBoxControlsMessenger.cs index 16899110..0e7c227b 100644 --- a/src/PepperDash.Essentials.MobileControl.Messengers/DeviceTypeExtensions/ISetTopBoxControlsMessenger.cs +++ b/src/PepperDash.Essentials.MobileControl.Messengers/DeviceTypeExtensions/ISetTopBoxControlsMessenger.cs @@ -7,9 +7,9 @@ namespace PepperDash.Essentials.Room.MobileControl public class ISetTopBoxControlsMessenger : MessengerBase { private readonly ISetTopBoxControls stbDevice; - public ISetTopBoxControlsMessenger(string key, string messagePath, IKeyName device) : base(key, messagePath, device) + public ISetTopBoxControlsMessenger(string key, string messagePath, ISetTopBoxControls device) : base(key, messagePath, device as IKeyName) { - stbDevice = device as ISetTopBoxControls; + stbDevice = device; } protected override void RegisterActions() diff --git a/src/PepperDash.Essentials.MobileControl.Messengers/DeviceTypeExtensions/ITransportMessenger.cs b/src/PepperDash.Essentials.MobileControl.Messengers/DeviceTypeExtensions/ITransportMessenger.cs index ee47491b..75f74418 100644 --- a/src/PepperDash.Essentials.MobileControl.Messengers/DeviceTypeExtensions/ITransportMessenger.cs +++ b/src/PepperDash.Essentials.MobileControl.Messengers/DeviceTypeExtensions/ITransportMessenger.cs @@ -7,9 +7,9 @@ namespace PepperDash.Essentials.Room.MobileControl public class ITransportMessenger : MessengerBase { private readonly ITransport transportDevice; - public ITransportMessenger(string key, string messagePath, Device device) : base(key, messagePath, device) + public ITransportMessenger(string key, string messagePath, ITransport device) : base(key, messagePath, device as IKeyName) { - transportDevice = device as ITransport; + transportDevice = device; } protected override void RegisterActions() diff --git a/src/PepperDash.Essentials.MobileControl.Messengers/Messengers/IEssentialsRoomCombinerMessenger.cs b/src/PepperDash.Essentials.MobileControl.Messengers/Messengers/IEssentialsRoomCombinerMessenger.cs index 9dc9eac7..a29d7b9e 100644 --- a/src/PepperDash.Essentials.MobileControl.Messengers/Messengers/IEssentialsRoomCombinerMessenger.cs +++ b/src/PepperDash.Essentials.MobileControl.Messengers/Messengers/IEssentialsRoomCombinerMessenger.cs @@ -13,7 +13,7 @@ namespace PepperDash.Essentials.AppServer.Messengers private readonly IEssentialsRoomCombiner _roomCombiner; public IEssentialsRoomCombinerMessenger(string key, string messagePath, IEssentialsRoomCombiner roomCombiner) - : base(key, messagePath, roomCombiner as Device) + : base(key, messagePath, roomCombiner as IKeyName) { _roomCombiner = roomCombiner; } diff --git a/src/PepperDash.Essentials.MobileControl.Messengers/Messengers/IHasPowerControlWithFeedbackMessenger.cs b/src/PepperDash.Essentials.MobileControl.Messengers/Messengers/IHasPowerControlWithFeedbackMessenger.cs index 689b5102..7fb39c8c 100644 --- a/src/PepperDash.Essentials.MobileControl.Messengers/Messengers/IHasPowerControlWithFeedbackMessenger.cs +++ b/src/PepperDash.Essentials.MobileControl.Messengers/Messengers/IHasPowerControlWithFeedbackMessenger.cs @@ -10,7 +10,7 @@ namespace PepperDash.Essentials.AppServer.Messengers private readonly IHasPowerControlWithFeedback _powerControl; public IHasPowerControlWithFeedbackMessenger(string key, string messagePath, IHasPowerControlWithFeedback powerControl) - : base(key, messagePath, powerControl as Device) + : base(key, messagePath, powerControl as IKeyName) { _powerControl = powerControl; } diff --git a/src/PepperDash.Essentials.MobileControl.Messengers/Messengers/IHasScheduleAwarenessMessenger.cs b/src/PepperDash.Essentials.MobileControl.Messengers/Messengers/IHasScheduleAwarenessMessenger.cs index 86529e1b..80481470 100644 --- a/src/PepperDash.Essentials.MobileControl.Messengers/Messengers/IHasScheduleAwarenessMessenger.cs +++ b/src/PepperDash.Essentials.MobileControl.Messengers/Messengers/IHasScheduleAwarenessMessenger.cs @@ -12,7 +12,7 @@ namespace PepperDash.Essentials.AppServer.Messengers public IHasScheduleAwareness ScheduleSource { get; private set; } public IHasScheduleAwarenessMessenger(string key, IHasScheduleAwareness scheduleSource, string messagePath) - : base(key, messagePath, scheduleSource as Device) + : base(key, messagePath, scheduleSource as IKeyName) { ScheduleSource = scheduleSource ?? throw new ArgumentNullException("scheduleSource"); ScheduleSource.CodecSchedule.MeetingsListHasChanged += new EventHandler(CodecSchedule_MeetingsListHasChanged); diff --git a/src/PepperDash.Essentials.MobileControl.Messengers/Messengers/IHumiditySensor.cs b/src/PepperDash.Essentials.MobileControl.Messengers/Messengers/IHumiditySensor.cs index 0e500250..c44ec9ae 100644 --- a/src/PepperDash.Essentials.MobileControl.Messengers/Messengers/IHumiditySensor.cs +++ b/src/PepperDash.Essentials.MobileControl.Messengers/Messengers/IHumiditySensor.cs @@ -10,7 +10,7 @@ namespace PepperDash.Essentials.AppServer.Messengers private readonly IHumiditySensor device; public IHumiditySensorMessenger(string key, IHumiditySensor device, string messagePath) - : base(key, messagePath, device as Device) + : base(key, messagePath, device as IKeyName) { this.device = device; } diff --git a/src/PepperDash.Essentials.MobileControl.Messengers/Messengers/ILevelControlsMessenger.cs b/src/PepperDash.Essentials.MobileControl.Messengers/Messengers/ILevelControlsMessenger.cs index a476e9bc..4fd3515a 100644 --- a/src/PepperDash.Essentials.MobileControl.Messengers/Messengers/ILevelControlsMessenger.cs +++ b/src/PepperDash.Essentials.MobileControl.Messengers/Messengers/ILevelControlsMessenger.cs @@ -10,7 +10,7 @@ namespace PepperDash.Essentials.AppServer.Messengers public class ILevelControlsMessenger : MessengerBase { private ILevelControls levelControlsDevice; - public ILevelControlsMessenger(string key, string messagePath, ILevelControls device) : base(key, messagePath, device as Device) + public ILevelControlsMessenger(string key, string messagePath, ILevelControls device) : base(key, messagePath, device as IKeyName) { levelControlsDevice = device; } diff --git a/src/PepperDash.Essentials.MobileControl.Messengers/Messengers/IMatrixRoutingMessenger.cs b/src/PepperDash.Essentials.MobileControl.Messengers/Messengers/IMatrixRoutingMessenger.cs index 4e403261..2a9669f1 100644 --- a/src/PepperDash.Essentials.MobileControl.Messengers/Messengers/IMatrixRoutingMessenger.cs +++ b/src/PepperDash.Essentials.MobileControl.Messengers/Messengers/IMatrixRoutingMessenger.cs @@ -16,7 +16,7 @@ namespace PepperDash.Essentials.AppServer.Messengers public class IMatrixRoutingMessenger : MessengerBase { private readonly IMatrixRouting matrixDevice; - public IMatrixRoutingMessenger(string key, string messagePath, IMatrixRouting device) : base(key, messagePath, device as Device) + public IMatrixRoutingMessenger(string key, string messagePath, IMatrixRouting device) : base(key, messagePath, device as IKeyName) { matrixDevice = device; } diff --git a/src/PepperDash.Essentials.MobileControl.Messengers/Messengers/IProjectorScreenLiftControlMessenger.cs b/src/PepperDash.Essentials.MobileControl.Messengers/Messengers/IProjectorScreenLiftControlMessenger.cs index af885639..a66a8586 100644 --- a/src/PepperDash.Essentials.MobileControl.Messengers/Messengers/IProjectorScreenLiftControlMessenger.cs +++ b/src/PepperDash.Essentials.MobileControl.Messengers/Messengers/IProjectorScreenLiftControlMessenger.cs @@ -12,7 +12,7 @@ namespace PepperDash.Essentials.AppServer.Messengers private readonly IProjectorScreenLiftControl device; public IProjectorScreenLiftControlMessenger(string key, string messagePath, IProjectorScreenLiftControl screenLiftDevice) - : base(key, messagePath, screenLiftDevice as Device) + : base(key, messagePath, screenLiftDevice as IKeyName) { device = screenLiftDevice; } diff --git a/src/PepperDash.Essentials.MobileControl.Messengers/Messengers/IRunRouteActionMessenger.cs b/src/PepperDash.Essentials.MobileControl.Messengers/Messengers/IRunRouteActionMessenger.cs index 98824530..8ca6668b 100644 --- a/src/PepperDash.Essentials.MobileControl.Messengers/Messengers/IRunRouteActionMessenger.cs +++ b/src/PepperDash.Essentials.MobileControl.Messengers/Messengers/IRunRouteActionMessenger.cs @@ -15,7 +15,7 @@ namespace PepperDash.Essentials.AppServer.Messengers public IRunRouteAction RoutingDevice { get; private set; } public RunRouteActionMessenger(string key, IRunRouteAction routingDevice, string messagePath) - : base(key, messagePath, routingDevice as Device) + : base(key, messagePath, routingDevice as IKeyName) { RoutingDevice = routingDevice ?? throw new ArgumentNullException("routingDevice"); diff --git a/src/PepperDash.Essentials.MobileControl.Messengers/Messengers/ISelectableItemsMessenger.cs b/src/PepperDash.Essentials.MobileControl.Messengers/Messengers/ISelectableItemsMessenger.cs index 187a82fb..f66ba53d 100644 --- a/src/PepperDash.Essentials.MobileControl.Messengers/Messengers/ISelectableItemsMessenger.cs +++ b/src/PepperDash.Essentials.MobileControl.Messengers/Messengers/ISelectableItemsMessenger.cs @@ -9,10 +9,10 @@ namespace PepperDash.Essentials.AppServer.Messengers public class ISelectableItemsMessenger : MessengerBase { private static readonly JsonSerializer serializer = new JsonSerializer { Converters = { new StringEnumConverter() } }; - private ISelectableItems itemDevice; + private readonly ISelectableItems itemDevice; private readonly string _propName; - public ISelectableItemsMessenger(string key, string messagePath, ISelectableItems device, string propName) : base(key, messagePath, device as Device) + public ISelectableItemsMessenger(string key, string messagePath, ISelectableItems device, string propName) : base(key, messagePath, device as IKeyName) { itemDevice = device; _propName = propName; diff --git a/src/PepperDash.Essentials.MobileControl.Messengers/Messengers/IShutdownPromptTimerMessenger.cs b/src/PepperDash.Essentials.MobileControl.Messengers/Messengers/IShutdownPromptTimerMessenger.cs index a2e6a6f8..ca5fc3d3 100644 --- a/src/PepperDash.Essentials.MobileControl.Messengers/Messengers/IShutdownPromptTimerMessenger.cs +++ b/src/PepperDash.Essentials.MobileControl.Messengers/Messengers/IShutdownPromptTimerMessenger.cs @@ -10,7 +10,7 @@ namespace PepperDash.Essentials.AppServer.Messengers private readonly IShutdownPromptTimer _room; public IShutdownPromptTimerMessenger(string key, string messagePath, IShutdownPromptTimer room) - : base(key, messagePath, room as Device) + : base(key, messagePath, room as IKeyName) { _room = room; } diff --git a/src/PepperDash.Essentials.MobileControl.Messengers/Messengers/ISwitchedOutputMessenger.cs b/src/PepperDash.Essentials.MobileControl.Messengers/Messengers/ISwitchedOutputMessenger.cs index cdd238e2..f49d189d 100644 --- a/src/PepperDash.Essentials.MobileControl.Messengers/Messengers/ISwitchedOutputMessenger.cs +++ b/src/PepperDash.Essentials.MobileControl.Messengers/Messengers/ISwitchedOutputMessenger.cs @@ -11,7 +11,7 @@ namespace PepperDash.Essentials.AppServer.Messengers private readonly ISwitchedOutput device; public ISwitchedOutputMessenger(string key, ISwitchedOutput device, string messagePath) - : base(key, messagePath, device as Device) + : base(key, messagePath, device as IKeyName) { this.device = device; } diff --git a/src/PepperDash.Essentials.MobileControl.Messengers/Messengers/ITechPasswordMessenger.cs b/src/PepperDash.Essentials.MobileControl.Messengers/Messengers/ITechPasswordMessenger.cs index 438fcef0..5b15d7ab 100644 --- a/src/PepperDash.Essentials.MobileControl.Messengers/Messengers/ITechPasswordMessenger.cs +++ b/src/PepperDash.Essentials.MobileControl.Messengers/Messengers/ITechPasswordMessenger.cs @@ -9,7 +9,7 @@ namespace PepperDash.Essentials.AppServer.Messengers private readonly ITechPassword _room; public ITechPasswordMessenger(string key, string messagePath, ITechPassword room) - : base(key, messagePath, room as Device) + : base(key, messagePath, room as IKeyName) { _room = room; } diff --git a/src/PepperDash.Essentials.MobileControl.Messengers/Messengers/ITemperatureSensorMessenger.cs b/src/PepperDash.Essentials.MobileControl.Messengers/Messengers/ITemperatureSensorMessenger.cs index 8d1d5771..6f7371c1 100644 --- a/src/PepperDash.Essentials.MobileControl.Messengers/Messengers/ITemperatureSensorMessenger.cs +++ b/src/PepperDash.Essentials.MobileControl.Messengers/Messengers/ITemperatureSensorMessenger.cs @@ -10,7 +10,7 @@ namespace PepperDash.Essentials.AppServer.Messengers private readonly ITemperatureSensor device; public ITemperatureSensorMessenger(string key, ITemperatureSensor device, string messagePath) - : base(key, messagePath, device as Device) + : base(key, messagePath, device as IKeyName) { this.device = device; } diff --git a/src/PepperDash.Essentials.MobileControl.Messengers/Messengers/LightingBaseMessenger.cs b/src/PepperDash.Essentials.MobileControl.Messengers/Messengers/LightingBaseMessenger.cs index 5c04491b..c8973aae 100644 --- a/src/PepperDash.Essentials.MobileControl.Messengers/Messengers/LightingBaseMessenger.cs +++ b/src/PepperDash.Essentials.MobileControl.Messengers/Messengers/LightingBaseMessenger.cs @@ -11,7 +11,7 @@ namespace PepperDash.Essentials.AppServer.Messengers protected ILightingScenes Device { get; private set; } public ILightingScenesMessenger(string key, ILightingScenes device, string messagePath) - : base(key, messagePath, device as Device) + : base(key, messagePath, device as IKeyName) { Device = device ?? throw new ArgumentNullException("device"); Device.LightingSceneChange += new EventHandler(LightingDevice_LightingSceneChange); diff --git a/src/PepperDash.Essentials.MobileControl.Messengers/Messengers/RoomEventScheduleMessenger.cs b/src/PepperDash.Essentials.MobileControl.Messengers/Messengers/RoomEventScheduleMessenger.cs index 122dc883..b8f5feff 100644 --- a/src/PepperDash.Essentials.MobileControl.Messengers/Messengers/RoomEventScheduleMessenger.cs +++ b/src/PepperDash.Essentials.MobileControl.Messengers/Messengers/RoomEventScheduleMessenger.cs @@ -14,7 +14,7 @@ namespace PepperDash.Essentials.AppServer.Messengers public RoomEventScheduleMessenger(string key, string messagePath, IRoomEventSchedule room) - : base(key, messagePath, room as Device) + : base(key, messagePath, room as IKeyName) { _room = room; } diff --git a/src/PepperDash.Essentials.MobileControl.Messengers/Messengers/ShadeBaseMessenger.cs b/src/PepperDash.Essentials.MobileControl.Messengers/Messengers/ShadeBaseMessenger.cs index c5f27318..ff41670a 100644 --- a/src/PepperDash.Essentials.MobileControl.Messengers/Messengers/ShadeBaseMessenger.cs +++ b/src/PepperDash.Essentials.MobileControl.Messengers/Messengers/ShadeBaseMessenger.cs @@ -10,7 +10,7 @@ namespace PepperDash.Essentials.AppServer.Messengers private readonly IShadesOpenCloseStop device; public IShadesOpenCloseStopMessenger(string key, IShadesOpenCloseStop shades, string messagePath) - : base(key, messagePath, shades as Device) + : base(key, messagePath, shades as IKeyName) { device = shades; } diff --git a/src/PepperDash.Essentials.MobileControl.Messengers/Messengers/TwoWayDisplayBaseMessenger.cs b/src/PepperDash.Essentials.MobileControl.Messengers/Messengers/TwoWayDisplayBaseMessenger.cs index 0fb5cbae..f0600dd5 100644 --- a/src/PepperDash.Essentials.MobileControl.Messengers/Messengers/TwoWayDisplayBaseMessenger.cs +++ b/src/PepperDash.Essentials.MobileControl.Messengers/Messengers/TwoWayDisplayBaseMessenger.cs @@ -9,12 +9,8 @@ namespace PepperDash.Essentials.AppServer.Messengers { private readonly TwoWayDisplayBase _display; - public TwoWayDisplayBaseMessenger(string key, string messagePath) : base(key, messagePath) - { - } - public TwoWayDisplayBaseMessenger(string key, string messagePath, TwoWayDisplayBase display) - : this(key, messagePath) + : base(key, messagePath, display) { _display = display; } diff --git a/src/PepperDash.Essentials.MobileControl/MobileControlSystemController.cs b/src/PepperDash.Essentials.MobileControl/MobileControlSystemController.cs index 2a6d0321..145b3cbb 100644 --- a/src/PepperDash.Essentials.MobileControl/MobileControlSystemController.cs +++ b/src/PepperDash.Essentials.MobileControl/MobileControlSystemController.cs @@ -566,18 +566,16 @@ namespace PepperDash.Essentials messengerAdded = true; } - if (device is ISetTopBoxControls) + if (device is ISetTopBoxControls stbDevice) { this.LogVerbose( "Adding ISetTopBoxControlMessenger for {deviceKey}" - ); - - var dev = device as Device; + ); var messenger = new ISetTopBoxControlsMessenger( $"{device.Key}-stb-{Key}", $"/device/{device.Key}", - dev + stbDevice ); AddDefaultDeviceMessenger(messenger); @@ -585,18 +583,16 @@ namespace PepperDash.Essentials messengerAdded = true; } - if (device is IChannel) + if (device is IChannel channelDevice) { this.LogVerbose( "Adding IChannelMessenger for {deviceKey}", device.Key - ); - - var dev = device as PepperDash.Core.Device; + ); var messenger = new IChannelMessenger( $"{device.Key}-channel-{Key}", $"/device/{device.Key}", - dev + channelDevice ); AddDefaultDeviceMessenger(messenger); @@ -604,16 +600,14 @@ namespace PepperDash.Essentials messengerAdded = true; } - if (device is IColor) + if (device is IColor colorDevice) { - this.LogVerbose("Adding IColorMessenger for {deviceKey}", device.Key); - - var dev = device as PepperDash.Core.Device; + this.LogVerbose("Adding IColorMessenger for {deviceKey}", device.Key); var messenger = new IColorMessenger( $"{device.Key}-color-{Key}", $"/device/{device.Key}", - dev + colorDevice ); AddDefaultDeviceMessenger(messenger); @@ -621,16 +615,14 @@ namespace PepperDash.Essentials messengerAdded = true; } - if (device is IDPad) + if (device is IDPad dPadDevice) { - this.LogVerbose("Adding IDPadMessenger for {deviceKey}", device.Key); - - var dev = device as PepperDash.Core.Device; + this.LogVerbose("Adding IDPadMessenger for {deviceKey}", device.Key); var messenger = new IDPadMessenger( $"{device.Key}-dPad-{Key}", $"/device/{device.Key}", - dev + dPadDevice ); AddDefaultDeviceMessenger(messenger); @@ -638,16 +630,14 @@ namespace PepperDash.Essentials messengerAdded = true; } - if (device is INumericKeypad) + if (device is INumericKeypad nkDevice) { - this.LogVerbose("Adding INumericKeyapdMessenger for {deviceKey}", device.Key); - - var dev = device as PepperDash.Core.Device; + this.LogVerbose("Adding INumericKeyapdMessenger for {deviceKey}", device.Key); var messenger = new INumericKeypadMessenger( $"{device.Key}-numericKeypad-{Key}", $"/device/{device.Key}", - dev + nkDevice ); AddDefaultDeviceMessenger(messenger); @@ -655,16 +645,14 @@ namespace PepperDash.Essentials messengerAdded = true; } - if (device is IHasPowerControl) + if (device is IHasPowerControl pcDevice) { - this.LogVerbose("Adding IHasPowerControlMessenger for {deviceKey}", device.Key); - - var dev = device as PepperDash.Core.Device; + this.LogVerbose("Adding IHasPowerControlMessenger for {deviceKey}", device.Key); var messenger = new IHasPowerMessenger( $"{device.Key}-powerControl-{Key}", $"/device/{device.Key}", - dev + pcDevice ); AddDefaultDeviceMessenger(messenger); @@ -689,18 +677,16 @@ namespace PepperDash.Essentials messengerAdded = true; } - if (device is ITransport) + if (device is ITransport transportDevice) { this.LogVerbose( "Adding ITransportMessenger for {deviceKey}", device.Key - ); + ); - var dev = device as PepperDash.Core.Device; - - var messenger = new IChannelMessenger( + var messenger = new ITransportMessenger( $"{device.Key}-transport-{Key}", $"/device/{device.Key}", - dev + transportDevice ); AddDefaultDeviceMessenger(messenger); @@ -708,14 +694,14 @@ namespace PepperDash.Essentials messengerAdded = true; } - if (device is IHasCurrentSourceInfoChange) + if (device is IHasCurrentSourceInfoChange csiChange) { this.LogVerbose("Adding IHasCurrentSourceInfoMessenger for {deviceKey}", device.Key); var messenger = new IHasCurrentSourceInfoMessenger( $"{device.Key}-currentSource-{Key}", $"/device/{device.Key}", - device as IHasCurrentSourceInfoChange + csiChange ); AddDefaultDeviceMessenger(messenger); @@ -723,7 +709,7 @@ namespace PepperDash.Essentials messengerAdded = true; } - if (device is ISwitchedOutput) + if (device is ISwitchedOutput switchedDevice) { this.LogVerbose( "Adding ISwitchedOutputMessenger for {deviceKey}", device.Key @@ -731,7 +717,7 @@ namespace PepperDash.Essentials var messenger = new ISwitchedOutputMessenger( $"{device.Key}-switchedOutput-{Key}", - device as ISwitchedOutput, + switchedDevice, $"/device/{device.Key}" ); @@ -773,40 +759,6 @@ namespace PepperDash.Essentials messengerAdded = true; } - // This will work if TKey and TSelector are both string types. - // Otherwise plugin device needs to instantiate ISelectableItemsMessenger and add it to the controller. - //if (device is IHasInputs inputs) - //{ - // this.LogVerbose("Adding InputsMessenger for {deviceKey}", device.Key); - - // var messenger = new ISelectableItemsMessenger( - // $"{device.Key}-inputs-{Key}", - // $"/device/{device.Key}", - // inputs.Inputs, - // "inputs" - // ); - - // AddDefaultDeviceMessenger(messenger); - - // messengerAdded = true; - //} - - //if (device is IHasInputs byteIntInputs) - //{ - // this.LogVerbose("Adding InputsMessenger for {deviceKey}", device.Key); - - // var messenger = new ISelectableItemsMessenger( - // $"{device.Key}-inputs-{Key}", - // $"/device/{device.Key}", - // byteIntInputs.Inputs, - // "inputs" - // ); - - // AddDefaultDeviceMessenger(messenger); - - // messengerAdded = true; - //} - if (device is IHasInputs stringInputs) { this.LogVerbose("Adding InputsMessenger for {deviceKey}", device.Key); @@ -855,7 +807,6 @@ namespace PepperDash.Essentials messengerAdded = true; } - if (device is IMatrixRouting matrix) { this.LogVerbose(