Commit 0709e92
committed
feat(room-combiner): add room-combination operation status lifecycle
Port the in-progress room-combination lockout feature from the v2 line (v2.43.0-feature-in-progress-lockout-updates.1) onto the v3 async combiner. The server-side lifecycle was absent from v3; the React overlay and codec Navigator webview were already present on v3 but never triggered because Essentials never emitted the status.
- Add IEssentialsRoomCombinerWithOperationStatus + CombinationOperationStatus (OperationId/ScenarioKey/StartedUtc/State/Message/AffectedRoomKeys) and the CombinationOperationState enum.
- EssentialsRoomCombiner publishes InProgress on ChangeScenario, gates completion on reflective ScenarioReconciled providers, supports a configurable operation timeout, and computes AffectedRoomKeys by diffing scenario uiMaps.
- Broadcast combinationOperation over the room-combiner messenger (status-changed event + full status).
- Guard PartitionPresent getter against a null partition sensor.
Preserves the exact member/JSON names the codec (reflection) and React (JSON) clients bind to: CombinationOperation, State, AffectedRoomKeys, CombinationOperationStatusChanged, combinationOperation.{state,affectedRoomKeys}.1 parent 2132efa commit 0709e92
5 files changed
Lines changed: 531 additions & 8 deletions
File tree
- src
- PepperDash.Essentials.Core
- PartitionSensor
- Room/Combining
- PepperDash.Essentials.MobileControl.Messengers/Messengers
Lines changed: 1 addition & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
24 | 24 | | |
25 | 25 | | |
26 | 26 | | |
27 | | - | |
| 27 | + | |
28 | 28 | | |
29 | 29 | | |
30 | 30 | | |
| |||
0 commit comments