From 96c686f89f126ad4cf1e262b83301fb7cc8bf2d5 Mon Sep 17 00:00:00 2001 From: gxc <guoxuecheng@guoxuechengdeMacBook-Pro.local> Date: 星期四, 07 十一月 2019 10:57:31 +0800 Subject: [PATCH] 2019.11.7 --- ZigbeeApp/Shared/Common/Room.cs | 52 ++++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 38 insertions(+), 14 deletions(-) diff --git a/ZigbeeApp/Shared/Common/Room.cs b/ZigbeeApp/Shared/Common/Room.cs old mode 100755 new mode 100644 index 50956db..a0c4875 --- a/ZigbeeApp/Shared/Common/Room.cs +++ b/ZigbeeApp/Shared/Common/Room.cs @@ -216,8 +216,9 @@ get { List<DeviceUI> deviceList = new List<DeviceUI>(); - foreach (var room in Lists) - { + for (int i = 0; i < Lists.Count; i++) + { + var room = Lists[i]; if (room.IsSharedRoom) { continue; @@ -226,8 +227,9 @@ { continue; } - foreach (var device in room.DeviceUIList) + for (int j = 0; j < room.DeviceUIList.Count; j++) { + var device = room.DeviceUIList[j]; if (device == null || device.CommonDevice == null) { continue; @@ -264,10 +266,10 @@ /// </summary> public static void InitAllRoom() { - if (CanInitAllRoom == false) - { - return; - } + //if (CanInitAllRoom == false) + //{ + // return; + //} Lists.Clear(); if (Config.Instance.Home.RoomFilePathList.Contains("Room_Favorite.json") == false) { @@ -427,8 +429,21 @@ //璁惧锛坉eviceUI锛� beforeRoom.DeviceUIList.Clear(); foreach (var deviceFilePath in beforeRoom.DeviceUIFilePathList) - { - beforeRoom.DeviceUIList.Add(Common.LocalDevice.Current.GetDeviceUI(deviceFilePath)); + { + var jsonInfo = Encoding.UTF8.GetString(Global.ReadFileByHomeId(deviceFilePath)); + var tempDeviceUI = Newtonsoft.Json.JsonConvert.DeserializeObject<DeviceUI>(jsonInfo); + if (tempDeviceUI != null) + { + var delCommon = tempDeviceUIList.Find((obj) => obj.CommonDevice != null && tempDeviceUI.CommonDevice != null && obj.CommonDevice.Type == tempDeviceUI.CommonDevice.Type && obj.CommonDevice.CommonDeviceAddrEpoint == tempDeviceUI.CommonDevice.CommonDeviceAddrEpoint); + if (delCommon != null) + { + beforeRoom.DeviceUIList.Add(delCommon); + } + else + { + beforeRoom.AddDevice(deviceFilePath); + } + } } //鍦烘櫙(SceneUI) beforeRoom.SceneUIList.Clear(); @@ -491,6 +506,10 @@ /// <param name="roomId">鎴块棿ID</param> public Room GetRoomById(string roomId) { + if (string.IsNullOrEmpty(roomId)) + { + return null; + } return Lists.Find((obj) => obj.Id == roomId); } @@ -536,7 +555,7 @@ deviceUI.DeviceAddr = device.DeviceAddr; deviceUI.DeviceEpoint = device.DeviceEpoint; - return Lists.Find((obj) => obj.IsLove == false && obj.DeviceUIFilePathList.Contains(deviceUI.FileName)); + return Lists.Find((obj) => obj.DeviceUIFilePathList.Contains(deviceUI.FileName)); } /// <summary> @@ -619,6 +638,10 @@ /// <returns></returns> public List<Room> GetRoomsByCurrentFloorIdAppendLoveRoom() { + if(Config.Instance.Home.FloorDics.Count==0) + { + return Lists; + } var r = Lists.FindAll((obj) => obj.FloorId == Config.Instance.Home.CurrentFloorId); r.Insert(0, GetLoveRoom()); return r; @@ -742,8 +765,9 @@ public void AddDevice(string deviceUIFilePath) { if (string.IsNullOrEmpty(deviceUIFilePath)) - { - return; + + { + return; } var jsonInfo = Encoding.UTF8.GetString(Global.ReadFileByHomeId(deviceUIFilePath)); var deviceUI = Newtonsoft.Json.JsonConvert.DeserializeObject<DeviceUI>(jsonInfo); @@ -980,7 +1004,7 @@ return -1; } } - + var getSceneIdAllData = await ZigBee.Device.Scene.GetSceneNewIdAsync(sceneName); if (getSceneIdAllData == null || getSceneIdAllData.getSceneIdData == null) { @@ -1466,6 +1490,6 @@ } #endregion - + } } -- Gitblit v1.8.0