diff --git a/src/PepperDash.Essentials.Core/PartitionSensor/EssentialsPartitionController.cs b/src/PepperDash.Essentials.Core/PartitionSensor/EssentialsPartitionController.cs index 7066be0e..52d93162 100644 --- a/src/PepperDash.Essentials.Core/PartitionSensor/EssentialsPartitionController.cs +++ b/src/PepperDash.Essentials.Core/PartitionSensor/EssentialsPartitionController.cs @@ -19,7 +19,29 @@ namespace PepperDash.Essentials.Core private bool isInAutoMode; - private bool partitionPresent; + private bool _partitionPresent; + + public bool PartitionPresent + { + get + { + return _partitionPresent; + } + set + { + if (_partitionPresent == value) + { + return; + } + + _partitionPresent = value; + + if (PartitionPresentFeedback != null) + { + PartitionPresentFeedback.FireUpdate(); + } + } + } public EssentialsPartitionController(string key, string name, IPartitionStateProvider sensor, bool defaultToManualMode, List adjacentRoomKeys) { @@ -85,11 +107,11 @@ namespace PepperDash.Essentials.Core isInAutoMode = false; if (PartitionPresentFeedback != null) { - PartitionPresentFeedback.SetValueFunc(() => partitionPresent); + PartitionPresentFeedback.SetValueFunc(() => _partitionPresent); } else { - PartitionPresentFeedback = new BoolFeedback(() => partitionPresent); + PartitionPresentFeedback = new BoolFeedback(() => _partitionPresent); } if (_partitionSensor != null) @@ -103,7 +125,7 @@ namespace PepperDash.Essentials.Core { if (!isInAutoMode) { - partitionPresent = true; + PartitionPresent = true; PartitionPresentFeedback.FireUpdate(); } } @@ -112,7 +134,7 @@ namespace PepperDash.Essentials.Core { if (!isInAutoMode) { - partitionPresent = false; + PartitionPresent = false; PartitionPresentFeedback.FireUpdate(); } } @@ -121,7 +143,7 @@ namespace PepperDash.Essentials.Core { if (!isInAutoMode) { - partitionPresent = !partitionPresent; + PartitionPresent = !PartitionPresent; PartitionPresentFeedback.FireUpdate(); } } diff --git a/src/PepperDash.Essentials.Core/PartitionSensor/IPartitionStateProvider.cs b/src/PepperDash.Essentials.Core/PartitionSensor/IPartitionStateProvider.cs index adb420b7..60bd080e 100644 --- a/src/PepperDash.Essentials.Core/PartitionSensor/IPartitionStateProvider.cs +++ b/src/PepperDash.Essentials.Core/PartitionSensor/IPartitionStateProvider.cs @@ -1,9 +1,5 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Crestron.SimplSharp; - +using System.Collections.Generic; +using Newtonsoft.Json; using PepperDash.Core; namespace PepperDash.Essentials.Core @@ -13,7 +9,11 @@ namespace PepperDash.Essentials.Core /// public interface IPartitionStateProvider : IKeyName { + [JsonIgnore] BoolFeedback PartitionPresentFeedback { get; } + + [JsonProperty("partitionPresent")] + bool PartitionPresent { get; } } /// @@ -21,6 +21,7 @@ namespace PepperDash.Essentials.Core /// public interface IPartitionController : IPartitionStateProvider { + [JsonProperty("adjacentRoomKeys")] List AdjacentRoomKeys { get; } void SetPartitionStatePresent(); diff --git a/src/PepperDash.Essentials.Core/Room/Combining/EssentialsRoomCombiner.cs b/src/PepperDash.Essentials.Core/Room/Combining/EssentialsRoomCombiner.cs index 882b0a13..11b0a3ec 100644 --- a/src/PepperDash.Essentials.Core/Room/Combining/EssentialsRoomCombiner.cs +++ b/src/PepperDash.Essentials.Core/Room/Combining/EssentialsRoomCombiner.cs @@ -1,11 +1,11 @@ using System; using System.Collections.Generic; using System.Linq; -using System.Text; using Crestron.SimplSharp; using PepperDash.Core; using Serilog.Events; +using Newtonsoft.Json; namespace PepperDash.Essentials.Core { diff --git a/src/PepperDash.Essentials.Core/Room/Combining/IEssentialsRoomCombiner.cs b/src/PepperDash.Essentials.Core/Room/Combining/IEssentialsRoomCombiner.cs index a035b650..0d4a40cc 100644 --- a/src/PepperDash.Essentials.Core/Room/Combining/IEssentialsRoomCombiner.cs +++ b/src/PepperDash.Essentials.Core/Room/Combining/IEssentialsRoomCombiner.cs @@ -30,6 +30,7 @@ namespace PepperDash.Essentials.Core [JsonProperty("isInAutoMode")] bool IsInAutoMode { get; } + [JsonProperty("rooms")] List Rooms { get; } /// @@ -77,6 +78,7 @@ namespace PepperDash.Essentials.Core /// /// When true, indicates that this room combination scenario is active /// + [JsonIgnore] BoolFeedback IsActiveFeedback { get; } [JsonProperty("isActive")] @@ -101,6 +103,7 @@ namespace PepperDash.Essentials.Core /// /// The mapping of UIs by key to rooms by key /// + [JsonProperty("uiMap")] Dictionary UiMap { get; set; } }