From ab08a546f710c20b374404c3cc07bae150c5b641 Mon Sep 17 00:00:00 2001 From: Neil Dorin Date: Wed, 17 Sep 2025 15:25:23 -0600 Subject: [PATCH 1/2] feat: Add HideInUi property to room combiner classes - Introduced `HideInUi` property in `EssentialsRoomCombinerPropertiesConfig` to control UI visibility. - Added `HideInUi` interface property in `IEssentialsRoomCombiner`. - Implemented `HideInUi` in `RoomCombinationScenario`, along with new `Key` and `Name` properties for improved data representation. --- .../EssentialsRoomCombinerPropertiesConfig.cs | 6 +++++ .../Room/Combining/IEssentialsRoomCombiner.cs | 6 +++++ .../Room/Combining/RoomCombinationScenario.cs | 24 ++++++++++++++++++- 3 files changed, 35 insertions(+), 1 deletion(-) diff --git a/src/PepperDash.Essentials.Core/Room/Combining/EssentialsRoomCombinerPropertiesConfig.cs b/src/PepperDash.Essentials.Core/Room/Combining/EssentialsRoomCombinerPropertiesConfig.cs index fec7e380..868f3992 100644 --- a/src/PepperDash.Essentials.Core/Room/Combining/EssentialsRoomCombinerPropertiesConfig.cs +++ b/src/PepperDash.Essentials.Core/Room/Combining/EssentialsRoomCombinerPropertiesConfig.cs @@ -103,6 +103,12 @@ namespace PepperDash.Essentials.Core [JsonProperty("name")] public string Name { get; set; } + /// + /// Gets or sets a value indicating whether to hide this scenario in the UI. + /// + [JsonProperty("hideInUi", NullValueHandling = NullValueHandling.Ignore)] + public bool HideInUi { get; set; } + /// /// Gets or sets the collection of partition states. /// diff --git a/src/PepperDash.Essentials.Core/Room/Combining/IEssentialsRoomCombiner.cs b/src/PepperDash.Essentials.Core/Room/Combining/IEssentialsRoomCombiner.cs index 50d6d84e..42fcb659 100644 --- a/src/PepperDash.Essentials.Core/Room/Combining/IEssentialsRoomCombiner.cs +++ b/src/PepperDash.Essentials.Core/Room/Combining/IEssentialsRoomCombiner.cs @@ -109,6 +109,12 @@ namespace PepperDash.Essentials.Core [JsonProperty("isActive")] bool IsActive { get; } + /// + /// Gets a value indicating whether the entity is active. + /// + [JsonProperty("hideInUi")] + bool HideInUi { get; } + /// /// Activates this room combination scenario /// diff --git a/src/PepperDash.Essentials.Core/Room/Combining/RoomCombinationScenario.cs b/src/PepperDash.Essentials.Core/Room/Combining/RoomCombinationScenario.cs index b6bd2547..aa0bdcaa 100644 --- a/src/PepperDash.Essentials.Core/Room/Combining/RoomCombinationScenario.cs +++ b/src/PepperDash.Essentials.Core/Room/Combining/RoomCombinationScenario.cs @@ -14,18 +14,40 @@ namespace PepperDash.Essentials.Core { private RoomCombinationScenarioConfig _config; + /// + /// Gets or sets the key associated with the object. + /// [JsonProperty("key")] public string Key { get; set; } + /// + /// Gets or sets the name associated with the object. + /// [JsonProperty("name")] public string Name { get; set; } - [JsonProperty("partitionStates")] + /// + /// Gets a value indicating whether to hide this scenario in the UI. + /// + /// + [JsonProperty("hideInUi")] + + public bool HideInUi + { + get { return _config.HideInUi; } + } + /// /// Gets or sets the PartitionStates /// + /// + [JsonProperty("partitionStates")] + public List PartitionStates { get; private set; } + /// + /// Determines which UI devices get mapped to which room in this scenario. The Key should be the key of the UI device and the Value should be the key of the room to map to + /// [JsonProperty("uiMap")] public Dictionary UiMap { get; set; } From dea4407e3efcc2008c330650631064414a0040e2 Mon Sep 17 00:00:00 2001 From: Neil Dorin Date: Wed, 17 Sep 2025 16:36:33 -0600 Subject: [PATCH 2/2] Update src/PepperDash.Essentials.Core/Room/Combining/IEssentialsRoomCombiner.cs Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- .../Room/Combining/IEssentialsRoomCombiner.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/PepperDash.Essentials.Core/Room/Combining/IEssentialsRoomCombiner.cs b/src/PepperDash.Essentials.Core/Room/Combining/IEssentialsRoomCombiner.cs index 42fcb659..34d0a0a0 100644 --- a/src/PepperDash.Essentials.Core/Room/Combining/IEssentialsRoomCombiner.cs +++ b/src/PepperDash.Essentials.Core/Room/Combining/IEssentialsRoomCombiner.cs @@ -110,7 +110,7 @@ namespace PepperDash.Essentials.Core bool IsActive { get; } /// - /// Gets a value indicating whether the entity is active. + /// Gets a value indicating whether this scenario should be hidden in the UI. /// [JsonProperty("hideInUi")] bool HideInUi { get; }