From f6b3446e3a4afc0f65814be87aaa0f5ea0c62d69 Mon Sep 17 00:00:00 2001 From: gxc <guoxuecheng@guoxuechengdeMacBook-Pro.local> Date: 星期一, 28 十月 2019 10:50:30 +0800 Subject: [PATCH] 2019.10.28 --- ZigbeeApp/Shared/Common/SceneUI.cs | 142 +++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 131 insertions(+), 11 deletions(-) diff --git a/ZigbeeApp/Shared/Common/SceneUI.cs b/ZigbeeApp/Shared/Common/SceneUI.cs old mode 100755 new mode 100644 index 3c02d15..364b4bb --- a/ZigbeeApp/Shared/Common/SceneUI.cs +++ b/ZigbeeApp/Shared/Common/SceneUI.cs @@ -1,5 +1,6 @@ 锘縰sing System; using System.Collections.Generic; +using Shared.Phone.Device.Category; using Shared.Phone.UserCenter; namespace Shared.Common @@ -61,10 +62,10 @@ /// 鏍囪瘑褰撳墠鍦烘櫙鏄惁鏄垎浜殑鍦烘櫙 /// </summary> public bool IsSharedScene = false; - /// <summary> - /// 鏄惁鏀惰棌 - /// </summary> - public bool IsCollected = false; + ///// <summary> + ///// 鏄惁鏀惰棌 + ///// </summary> + //public bool IsCollected = false; /// <summary> /// 寤舵椂鎵ц鏃堕棿--鏁翠釜鍦烘櫙寤舵椂(涓嶆槸寤舵椂鍦烘櫙閲岄潰鐨勬墽琛岀洰鏍�) @@ -77,6 +78,10 @@ /// 鍦烘櫙鎵ц鐩爣 /// </summary> public List<ZigBee.Device.Scene.AddSceneMemberData> AddSceneMemberDataList = new List<ZigBee.Device.Scene.AddSceneMemberData> { }; + ///// <summary> + ///// RoomId + ///// </summary> + //public string RoomId = string.Empty; #endregion @@ -93,21 +98,136 @@ #endregion - #region 鈼� 鏀惰棌____________________________ + #region 鈼� 閫氳繃id鑾峰彇鍦烘櫙鍖哄煙_________________ /// <summary> - /// collect + /// GetZone /// </summary> - /// <param name="collected"></param> - /// <param name="autoBackup"></param> - public void Collect(bool collected, bool autoBackup = true) + /// <returns></returns> + public string GetZone() { - IsCollected = collected; - Save(autoBackup); + var room = Room.CurrentRoom.GetRoomBySceneId(Id); + if(room==null) + { + return null; + } + var floorName = Shared.Common.Config.Instance.Home.GetFloorNameById(room.FloorId); + if (floorName == null) + { + return room.Name; + } + return $"{floorName},{room.Name}"; } #endregion + #region 鈼� 缂栬緫鍦烘櫙_________________________ + /// <summary> + /// 缂栬緫鍦烘櫙 + /// </summary> + /// <param name="sceneUI">sceneUI</param> + /// <param name="room">Room.</param> + public static void EditScene(SceneUI sceneUI, Room room) + { + Application.RunOnMainThread(async () => + { + try + { + var targetList = new List<SceneTargetDeviceUI> { }; + CommonPage.Loading.Start(); + //浠庣綉鍏充腑鍙嶅簭鍒楀寲鍑哄搴旂殑鎴块棿璁惧 + var sceneDeviceList = await ZigBee.Device.Scene.GetSceneDeviceListAsync(sceneUI.Id); + if (sceneDeviceList == null) + { + CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.TheMainGatewayIsNotOnLine); + return; + } + + if (Shared.Common.Room.AllRoomDeviceUIList.Count == 0) + { + + if (Shared.Common.Room.AllRoomDeviceUIList.Count == 0) + { + CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.ThisSceneHaveNoDevice); + } + //return; + } + if (sceneDeviceList.getSceneDeviceListInfo != null) + { + var deviceList = sceneDeviceList.getSceneDeviceListInfo.DeviceList; + + if (deviceList != null && Room.AllRoomDeviceUIList.Count != 0) + { + foreach (var sceneDev in deviceList) + { + if (sceneDev.Type == 0) + { + var dev = Room.AllRoomDeviceUIList.Find((obj) => obj.DeviceEpoint == sceneDev.Epoint && obj.DeviceAddr == sceneDev.DeviceAddr); + if(dev!=null) + { + var sceneTargetDevice = new SceneTargetDeviceUI { + Type = 0, + DeviceUI = dev, + TaskList = sceneDev.TaskList, + DelayTimeSerialNumber= deviceList.IndexOf(sceneDev) + 1 + }; + + targetList.Add(sceneTargetDevice); + } + } + else if (sceneDev.Type == 1) + { + var localScene = Room.AllRoomSceneUIList.Find((obj) => obj.Id == sceneDev.ElseScenesId); + if (localScene != null) + { + var sceneTargetDeviceScene = new SceneTargetDeviceUI { + Type = 1, + ElseScenesId = sceneDev.ElseScenesId, + SceneName = localScene.Name, + SceneUI = localScene, + DelayTimeSerialNumber = deviceList.IndexOf(sceneDev) + 1 + }; + targetList.Add(sceneTargetDeviceScene); + } + } + else + { + var sceneTargetDeviceScene = new SceneTargetDeviceUI + { + Type = 2, + DelayTime = sceneDev.DelayTime, + DelayTimeSerialNumber = deviceList.IndexOf(sceneDev)+1 + }; + targetList.Add(sceneTargetDeviceScene); + } + } + } + } + else + { + CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.FailedPleaseTryAgain); + } + var scene = new CategoryAddScene(); + Phone.UserView.HomePage.Instance.AddChidren(scene); + Phone.UserView.HomePage.Instance.PageIndex += 1; + scene.isModify = true; + scene.modifyRoom = room; + scene.modifySceneUI = sceneUI; + scene.modifySceneTargetDevicesList = targetList; + scene.Show(); + } + catch (Exception ex) + { + System.Console.WriteLine($"缂栬緫鍦烘櫙鍑洪敊---{ex.Message}"); + } + finally + { + CommonPage.Loading.Hide(); + } + }); + } + #endregion + #region 鈼� 淇濆瓨____________________________ /// <summary> -- Gitblit v1.8.0