From 944b87b6bcccb095cd73f13f4410fb20faf48f74 Mon Sep 17 00:00:00 2001 From: gxc <guoxuecheng@guoxuechengdeMacBook-Pro.local> Date: 星期三, 25 十二月 2019 11:21:06 +0800 Subject: [PATCH] 2019.12.25 --- ZigbeeApp/Shared/Common/Room.cs | 172 +++++++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 147 insertions(+), 25 deletions(-) diff --git a/ZigbeeApp/Shared/Common/Room.cs b/ZigbeeApp/Shared/Common/Room.cs index 417768e..178fc61 100644 --- a/ZigbeeApp/Shared/Common/Room.cs +++ b/ZigbeeApp/Shared/Common/Room.cs @@ -69,12 +69,20 @@ /// <summary> /// 娓╁害浼犳劅鍣�(璁惧涓婚敭) - /// </summary> + /// </summary> public string TemperatrueDevice = string.Empty; /// <summary> /// 婀垮害浼犳劅鍣�(璁惧涓婚敭) /// </summary> public string HumidityDevice = string.Empty; + /// <summary> + /// 娓╁害 + /// </summary> + public double Temperatrue; + /// <summary> + /// 婀垮害 + /// </summary> + public double Humidity; /// <summary> /// 褰撳墠閫夋嫨鐨勬埧闂� @@ -201,6 +209,32 @@ return sceneList; } } + + /// <summary> + /// 鑾峰彇鎵�鏈夋埧闂寸殑鎵�鏈夊満鏅矾寰� + /// </summary> + /// <value>All room scene UIL ist.</value> + [Newtonsoft.Json.JsonIgnore] + public List<string> AllRoomSceneUIFilepathList + { + get + { + var pathList = new List<string> { }; + foreach (var r in Lists) + { + if (r.SceneUIFilePathList.Count == 0) + { + continue; + } + foreach (var path in r.SceneUIFilePathList) + { + pathList.Add(path); + } + } + return pathList; + } + } + /// <summary> /// 鍦烘櫙鍒楄〃---涓嶅啀搴忓垪鍖� /// </summary> @@ -302,6 +336,19 @@ } } Config.Instance.Home.InitFloor(); + + RefreshRoomListView(); + } + + /// <summary> + /// 鍒锋柊鎴块棿瑙嗗浘鍒楄〃 + /// </summary> + public static void RefreshRoomListView() + { + Application.RunOnMainThread(() => + { + Phone.Device.Room.RoomManagement.Instance.Show(); + }); } /// <summary> @@ -604,6 +651,10 @@ /// <returns></returns> public List<Room> GetRoomsByFloorId(string id) { + if (Config.Instance.Home.FloorDics.Count == 0) + { + return Lists; + } return Lists.FindAll((obj) => obj.FloorId == id); } /// <summary> @@ -611,12 +662,12 @@ /// </summary> /// <param name="id"></param> /// <returns></returns> - public List<string> GetRoomNamesByFloorId(string id) + public List<string> GetRoomNamesByFloorId(string id) { List<string> names = new List<string> { }; - foreach(var r in Lists) + foreach (var r in Lists) { - if(r.FloorId==id) + if (r.FloorId == id) { names.Add(r.Name); } @@ -631,6 +682,10 @@ /// <returns></returns> public List<Room> GetRoomsByFloorIdAppendLoveRoom(string id) { + if (Config.Instance.Home.FloorDics.Count == 0) + { + return Lists; + } var r= Lists.FindAll((obj) => obj.FloorId == id); r.Insert(0, GetLoveRoom()); return r; @@ -770,9 +825,8 @@ public void AddDevice(string deviceUIFilePath) { if (string.IsNullOrEmpty(deviceUIFilePath)) - - { - return; + { + return; } var deviceUI = Common.LocalDevice.Current.GetDeviceUI(deviceUIFilePath); if (null == deviceUI.CommonDevice) @@ -951,35 +1005,34 @@ } /// <summary> - /// 鑾峰彇璇ユゼ灞傜殑鍦烘櫙 + /// 鑾峰彇鏈垎閰嶅尯鍩熻澶� /// </summary> - /// <param name="floorId"></param> /// <returns></returns> - public List<SceneUI> GetSceneUIsByFloorId(string floorId) + public List<DeviceUI> GetUnalloctedDeviceUIs() { - var rooms = GetRoomsByFloorId(floorId); - if (rooms == null) + List<DeviceUI> deviceUIs = new List<DeviceUI> { }; + var dList = AllRoomDeviceUIList; + var commonDeviceList = Common.LocalDevice.Current.listAllDevice; + + if (dList.Count == 0) { return null; } - var sceneList = new List<SceneUI> { }; - foreach (var r in rooms) + foreach (var device in commonDeviceList) { - if (r.SceneUIList.Count == 0) + if (dList.Find((obj) => obj.CommonDevice == device) == null) { - continue; - } - foreach (var sceneUI in r.SceneUIList) - { - if (sceneUI == null) - { - continue; - } - sceneList.Add(sceneUI); + deviceUIs.Add(Common.LocalDevice.Current.GetDeviceUI(device)); } } - return sceneList; + if (deviceUIs.Count == 0) + { + return null; + } + return deviceUIs; } + + //public List<DeviceUI> GetUnalloctedDeviceUITypes #endregion @@ -1239,6 +1292,7 @@ } return null; } + /// <summary> /// 鑾峰彇璇ユゼ灞傛墍鏈夊満鏅� /// </summary> @@ -1254,6 +1308,74 @@ } return sceneUIs; } + + /// <summary> + /// 鑾峰彇璇ユゼ灞傜殑鍦烘櫙 + /// </summary> + /// <param name="floorId"></param> + /// <returns></returns> + public List<SceneUI> GetSceneUIsByFloorId(string floorId) + { + var rooms = GetRoomsByFloorId(floorId); + if (rooms == null) + { + return null; + } + var sceneList = new List<SceneUI> { }; + foreach (var r in rooms) + { + if (r.SceneUIList.Count == 0) + { + continue; + } + foreach (var sceneUI in r.SceneUIList) + { + if (sceneUI == null) + { + continue; + } + sceneList.Add(sceneUI); + } + } + return sceneList; + } + + /// <summary> + /// 鑾峰彇鏈垎閰嶅尯鍩熷満鏅� + /// </summary> + /// <returns></returns> + public List<SceneUI> GetUnalloctedScenes() + { + List<SceneUI> sceneUIs = new List<SceneUI> { }; + var sList = AllRoomSceneUIFilepathList; + + List<string> sfile = new List<string> { }; + foreach (var path in Global.FileListByHomeId()) + { + if (path.StartsWith("Scene_", StringComparison.Ordinal)) + { + sfile.Add(path); + } + } + foreach (var path in sfile) + { + if (sList.Find((obj) => obj == path) == null) + { + var jsonInfo = Encoding.UTF8.GetString(Global.ReadFileByHomeId(path)); + var tempSceneUI = Newtonsoft.Json.JsonConvert.DeserializeObject<SceneUI>(jsonInfo); + if (tempSceneUI != null) + { + sceneUIs.Add(tempSceneUI); + } + } + } + if (sceneUIs.Count == 0) + { + return null; + } + return sceneUIs; + } + #endregion #region 鈼� 鍒锋柊鍦烘櫙_________________________ -- Gitblit v1.8.0