From bd01e2bacce4df7af3165ebaa85da113bca11a4b Mon Sep 17 00:00:00 2001 From: Neil Dorin Date: Tue, 7 Oct 2025 17:10:11 -0600 Subject: [PATCH] fix: Add KeyName class and update camera messaging This commit introduces a new `KeyName` class implementing the `IKeyName` interface, enhancing the representation of camera data. The `CameraController_CameraSelected` and `SendFullStatus` methods are updated to utilize `KeyName` instances for selected and listed cameras, improving data encapsulation and consistency in the `IHasCamerasWithControlsStateMessage`. Additionally, new using directives for logging and core functionalities are added. --- .../IHasCamerasWithControlMessenger.cs | 45 +++++++++++++++++-- 1 file changed, 41 insertions(+), 4 deletions(-) diff --git a/src/PepperDash.Essentials.MobileControl.Messengers/Messengers/IHasCamerasWithControlMessenger.cs b/src/PepperDash.Essentials.MobileControl.Messengers/Messengers/IHasCamerasWithControlMessenger.cs index e8c4a6a0..cce07dcd 100644 --- a/src/PepperDash.Essentials.MobileControl.Messengers/Messengers/IHasCamerasWithControlMessenger.cs +++ b/src/PepperDash.Essentials.MobileControl.Messengers/Messengers/IHasCamerasWithControlMessenger.cs @@ -1,5 +1,7 @@ using Newtonsoft.Json; using PepperDash.Core; +using PepperDash.Core.Logging; +using PepperDash.Essentials.Core; using PepperDash.Essentials.Devices.Common.Cameras; using System; using System.Collections.Generic; @@ -33,9 +35,15 @@ namespace PepperDash.Essentials.AppServer.Messengers private void CameraController_CameraSelected(object sender, CameraSelectedEventArgs e) { + var selectedCamera = new KeyName + { + Key = e.SelectedCamera.Key, + Name = e.SelectedCamera.Name + }; + PostStatusMessage(new IHasCamerasWithControlsStateMessage { - SelectedCamera = e.SelectedCamera + SelectedCamera = selectedCamera }); } @@ -68,10 +76,30 @@ namespace PepperDash.Essentials.AppServer.Messengers private void SendFullStatus(string clientId) { + var cameraList = new List(); + KeyName selectedCamera = null; + + foreach (var cam in CameraController.Cameras) + { + cameraList.Add(new KeyName{ + Key = cam.Key, + Name = cam.Name + }); + } + + if (CameraController.SelectedCamera != null) + { + selectedCamera = new KeyName + { + Key = CameraController.SelectedCamera.Key, + Name = CameraController.SelectedCamera.Name + }; + } + var state = new IHasCamerasWithControlsStateMessage { - CameraList = CameraController.Cameras.Cast().ToList(), - SelectedCamera = CameraController.SelectedCamera as IKeyName + CameraList = cameraList, + SelectedCamera = selectedCamera }; PostStatusMessage(state, clientId); @@ -96,5 +124,14 @@ namespace PepperDash.Essentials.AppServer.Messengers public IKeyName SelectedCamera { get; set; } } - + class KeyName : IKeyName + { + public string Key { get; set; } + public string Name { get; set; } + public KeyName() + { + Key = ""; + Name = ""; + } + } }