From 66a9965c44ecc32a6696abca876ab9d1cd091584 Mon Sep 17 00:00:00 2001 From: gxc <guoxuecheng@guoxuechengdeMacBook-Pro.local> Date: 星期五, 28 二月 2020 15:25:13 +0800 Subject: [PATCH] 2020.2.28 --- ZigbeeApp/Shared/Common/SceneUI.cs | 156 +++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 153 insertions(+), 3 deletions(-) diff --git a/ZigbeeApp/Shared/Common/SceneUI.cs b/ZigbeeApp/Shared/Common/SceneUI.cs index 360a30d..3f4cd40 100644 --- 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 @@ -26,7 +27,7 @@ /// <summary> /// 鍦烘櫙id /// </summary> - public int Id = int.MaxValue; + public int Id = -1; /// <summary> /// 鍦烘櫙鍚� @@ -38,7 +39,7 @@ /// </summary> public string IconPath = "Scene/SceneDefault.png"; /// <summary> - /// 鍥剧墖鏉ユ簮 0--鏈湴鍥惧簱 1--鎷嶇収 2--绯荤粺鍥惧簱 + /// 鍥剧墖鏉ユ簮 0--鏈湴鍥惧簱 1--鎷嶇収 2--绯荤粺鍥惧簱 /// </summary> public int IconPathType = 0; @@ -61,6 +62,10 @@ /// 鏍囪瘑褰撳墠鍦烘櫙鏄惁鏄垎浜殑鍦烘櫙 /// </summary> public bool IsSharedScene = false; + ///// <summary> + ///// 鏄惁鏀惰棌 + ///// </summary> + //public bool IsCollected = false; /// <summary> /// 寤舵椂鎵ц鏃堕棿--鏁翠釜鍦烘櫙寤舵椂(涓嶆槸寤舵椂鍦烘櫙閲岄潰鐨勬墽琛岀洰鏍�) @@ -68,16 +73,30 @@ /// </summary> [Newtonsoft.Json.JsonIgnore] public int SceneDelayTime = 0; + + /// <summary> + /// 鍓╀綑瑙﹀彂鏃堕棿锛屽崟浣嶇 + /// </summary> + [Newtonsoft.Json.JsonIgnore] + public int RemainTime; /// <summary> /// 鍦烘櫙鎵ц鐩爣 /// </summary> public List<ZigBee.Device.Scene.AddSceneMemberData> AddSceneMemberDataList = new List<ZigBee.Device.Scene.AddSceneMemberData> { }; + ///// <summary> + ///// RoomId + ///// </summary> + //public string RoomId = string.Empty; #endregion #region 鈼� 閫氳繃鍦烘櫙id鑾峰彇鍦烘櫙璺緞_____________ - + /// <summary> + /// GetSceneFilePathBySceneId + /// </summary> + /// <param name="sceneId"></param> + /// <returns></returns> public static string GetSceneFilePathBySceneId(int sceneId) { return $"Scene_{sceneId}.json"; @@ -85,6 +104,137 @@ #endregion + #region 鈼� 閫氳繃id鑾峰彇鍦烘櫙鍖哄煙_________________ + + /// <summary> + /// GetZone + /// </summary> + /// <returns></returns> + public string GetZone() + { + 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