From 27e6f7742991170672feba0f4fd8d693b333ba0e Mon Sep 17 00:00:00 2001
From: gxc <guoxuecheng@guoxuechengdeMacBook-Pro.local>
Date: 星期三, 15 一月 2020 17:08:06 +0800
Subject: [PATCH] 2020.1.15

---
 ZigbeeApp/Shared/Common/Room.cs |  101 +++++++++++++++++++++++++-------------------------
 1 files changed, 50 insertions(+), 51 deletions(-)

diff --git a/ZigbeeApp/Shared/Common/Room.cs b/ZigbeeApp/Shared/Common/Room.cs
index d324988..e5c8d07 100644
--- a/ZigbeeApp/Shared/Common/Room.cs
+++ b/ZigbeeApp/Shared/Common/Room.cs
@@ -448,6 +448,7 @@
             }
             Save();
             HdlAutoBackupLogic.AddOrEditorFile(room.FileName);
+            CurrentRoom.RefreshRoomListView();
             return true;
         }
 
@@ -701,6 +702,10 @@
         {
             foreach (var r in Lists)
             {
+                if(r.IsLove)
+                {
+                    continue;
+                }
                 foreach (var scene in r.SceneUIList)
                 {
                     if (scene.Id == sceneId)
@@ -1114,14 +1119,10 @@
             List<DeviceUI> deviceUIs = new List<DeviceUI> { };
             var dList = AllRoomDeviceUIList;
             var commonDeviceList = Common.LocalDevice.Current.listAllDevice;
-
-            if (dList.Count == 0)
-            {
-                return null;
-            }
+            
             foreach (var device in commonDeviceList)
             {
-                if (dList.Find((obj) => obj.CommonDevice == device) == null)
+                if (dList.Find((obj) => obj.CommonDevice.DeviceEpoint == device.DeviceEpoint && obj.CommonDevice.DeviceAddr == device.DeviceAddr) == null)
                 {
                     deviceUIs.Add(Common.LocalDevice.Current.GetDeviceUI(device));
                 }
@@ -1435,6 +1436,10 @@
         {
             foreach (var r in Lists)
             {
+                if (r.IsLove)
+                {
+                    continue;
+                }
                 foreach (var sceneUI in r.SceneUIList)
                 {
                     if (sceneUI.Id == sceneId)
@@ -1538,51 +1543,45 @@
         /// </summary>
         public async System.Threading.Tasks.Task<bool> RefreshSceneUIList()
         {
-            return false;
-            //System.Console.WriteLine($"寮�濮嬭姹傜綉鍏冲満鏅�****{DateTime.Now.ToString("yyMMdd hhmmss fff")}*****");
-            //bool result = true;
-            //var sceneList = await ZigBee.Device.Scene.GetSceneListAsync();
-            //System.Console.WriteLine($"缁撴潫璇锋眰缃戝叧鍦烘櫙****{DateTime.Now.ToString("yyMMdd hhmmss fff")}*****");
-            //if (sceneList == null)
-            //{
-            //    return false;
-            //}
-            //List<int> sceneIDList = new List<int> { };
-            //System.Console.WriteLine($"寮�濮嬫湰鍦板満鏅�****{DateTime.Now.ToString("yyMMdd hhmmss fff")}*****");
-            //foreach (var scene in sceneList)
-            //{
-            //    if (scene == null)
-            //    {
-            //        continue;
-            //    }
-            //    sceneIDList.Add(scene.ScenesId);
-            //}
-            //foreach(var r in Lists)
-            //{
-            //    if(r.SceneUIList==null || r.SceneUIList.Count==0)
-            //    {
-            //        continue;
-            //    }
-            //    foreach(var rScene in r.SceneUIList)
-            //    {
-            //        if(rScene==null)
-            //        {
-            //            continue;
-            //        }
-            //        //var scene = sceneList.Find((obj) => rScene.ScenesId == obj.ScenesId);
-            //        if(sceneIDList.Contains(rScene.ScenesId)==false)
-            //        {
-            //            var removeResult = r.SceneUIList.Remove(rScene);
-            //            r.Save();
-            //            if (removeResult == false)
-            //            {
-            //                result = false;
-            //            }
-            //        }
-            //    }
-            //}
-            //System.Console.WriteLine($"缁撴潫鏈湴鍦烘櫙****{DateTime.Now.ToString("yyMMdd hhmmss fff")}*****");
-            //return result;
+            bool result = true;
+            var sceneList = await ZigBee.Device.Scene.GetSceneListAsync();
+            if (sceneList == null)
+            {
+                return false;
+            }
+            List<int> sceneIDList = new List<int> { };
+            foreach (var scene in sceneList)
+            {
+                if (scene == null)
+                {
+                    continue;
+                }
+                sceneIDList.Add(scene.ScenesId);
+            }
+            foreach (var r in Lists)
+            {
+                if(r.IsLove)
+                {
+                    continue;
+                }
+                if (r.SceneUIList == null || r.SceneUIList.Count == 0)
+                {
+                    continue;
+                }
+                foreach (var rScene in r.SceneUIList)
+                {
+                    if (rScene == null)
+                    {
+                        continue;
+                    }
+                    if (sceneIDList.Contains(rScene.Id) == false)
+                    { 
+                        r.RemoveScene(rScene);
+                        result = true;
+                    }
+                }
+            }
+            return result;
         }
 
         #endregion

--
Gitblit v1.8.0