diff --git a/src/PepperDash.Essentials.Core/Devices/AudioControlListItemBase.cs b/src/PepperDash.Essentials.Core/Devices/AudioControlListItemBase.cs index 920c2d14..295fd25c 100644 --- a/src/PepperDash.Essentials.Core/Devices/AudioControlListItemBase.cs +++ b/src/PepperDash.Essentials.Core/Devices/AudioControlListItemBase.cs @@ -9,9 +9,15 @@ namespace PepperDash.Essentials.Core { public abstract class AudioControlListItemBase { + /// + /// Key of the parent device in the DeviceManager + /// [JsonProperty("parentDeviceKey")] public string ParentDeviceKey { get; set; } + /// + /// Optional key of the item in the parent device + /// [JsonProperty("itemKey")] public string ItemKey { get; set; } diff --git a/src/PepperDash.Essentials.Core/Devices/LevelControlListItem.cs b/src/PepperDash.Essentials.Core/Devices/LevelControlListItem.cs index 18da1130..4c2e83e4 100644 --- a/src/PepperDash.Essentials.Core/Devices/LevelControlListItem.cs +++ b/src/PepperDash.Essentials.Core/Devices/LevelControlListItem.cs @@ -51,8 +51,18 @@ namespace PepperDash.Essentials.Core /// The key of the device in the DeviceManager for control /// [JsonProperty("deviceKey")] - public string DeviceKey => DeviceManager.AllDevices. - Where(d => d.Key.Contains(ParentDeviceKey) && d.Key.Contains(ItemKey)).FirstOrDefault()?.Key ?? $"{ParentDeviceKey}--{ItemKey}"; + public string DeviceKey + { + get + { + if(string.IsNullOrEmpty(ItemKey)) return ParentDeviceKey; + else + { + return DeviceManager.AllDevices. + Where(d => d.Key.Contains(ParentDeviceKey) && d.Key.Contains(ItemKey)).FirstOrDefault()?.Key ?? $"{ParentDeviceKey}--{ItemKey}"; + } + } + } /// /// Indicates if the item is a level, mute , or both