From ed2f4a97aa48cdb4a013d2a389877f52eb3eccdf Mon Sep 17 00:00:00 2001
From: gxc <guoxuecheng@guoxuechengdeMacBook-Pro.local>
Date: 星期二, 29 十月 2019 13:15:59 +0800
Subject: [PATCH] Merge branch 'DEV_GXC' of http://172.16.1.23:6688/r/~xm/HomeApp into DEV_GXC

---
 ZigbeeApp/Shared/Common/Room.cs |   31 +++++++++++++++++++++++++------
 1 files changed, 25 insertions(+), 6 deletions(-)

diff --git a/ZigbeeApp/Shared/Common/Room.cs b/ZigbeeApp/Shared/Common/Room.cs
index 7ee88a3..23c861c 100644
--- 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;
@@ -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>

--
Gitblit v1.8.0