From 0e0584b87851c56745bf73b1a961b80613dd0721 Mon Sep 17 00:00:00 2001
From: 陈嘉乐 <cjl@hdlchina.com.cn>
Date: 星期二, 19 五月 2020 16:35:16 +0800
Subject: [PATCH] 2020-05-19-4

---
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlRoomLogic.cs |   55 ++++++++++++++++++++++++++++---------------------------
 1 files changed, 28 insertions(+), 27 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlRoomLogic.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlRoomLogic.cs
index 8daca3a..04158ce 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlRoomLogic.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlRoomLogic.cs
@@ -31,32 +31,14 @@
                 return m_Current;
             }
         }
-
         /// <summary>
-        /// 褰撳墠閫夋嫨鐨勬埧闂�
+        /// 褰撳墠涓婚〉閫夋嫨鐨勬埧闂村璞�
         /// </summary>
-        private Room m_CurrentRoom = null;
+        public Room NowMainPageRoom = null;
         /// <summary>
-        /// 褰撳墠閫夋嫨鐨勬埧闂�
+        /// 褰撳墠鍒嗙被閫夋嫨鐨勬埧闂村璞�
         /// </summary>
-        public Room CurrentRoom
-        {
-            get
-            {
-                if (m_CurrentRoom == null && dicRooms.Count > 0)
-                {
-                    //璁剧疆鍒濆鍊�
-                    foreach (var room in dicRooms.Values)
-                    {
-                        m_CurrentRoom = room;
-                        break;
-                    }
-                }
-                return m_CurrentRoom;
-            }
-            set { m_CurrentRoom = value; }
-        }
-
+        public Room NowCategoryRoom = null;
         /// <summary>
         /// 鎵�鏈夌殑鎴块棿淇℃伅
         /// </summary>
@@ -72,6 +54,9 @@
         /// </summary>
         public void InitAllRoom()
         {
+            this.NowMainPageRoom = null;
+            this.NowCategoryRoom = null;
+
             //娓呯┖鏈湴缂撳瓨
             this.dicRooms.Clear();
             //妫�娴嬫垜鐨勫枩鐖辫繖涓埧闂村璞�
@@ -143,7 +128,7 @@
         {
             Application.RunOnMainThread(() =>
             {
-                MainPage.ListRoomViewFrom.Instance?.ShowForm();
+                MainPage.ListRoomViewFrom.Instance?.RefreshListRoom();
             });
         }
 
@@ -305,6 +290,10 @@
                 Global.DeleteFilebyHomeId(roomFilePath);
             }
             HdlAutoBackupLogic.DeleteFile(roomFilePath);
+
+            //鏍规嵁鎴块棿ID,绉婚櫎鎸囧畾鐨勭湡瀹炵墿鐞嗚澶囩殑鎵�灞炴埧闂磋褰�
+            Common.LocalDevice.Current.DeleteRealDeviceByRoomId(roomId);
+
             //鍒锋柊鎴块棿瑙嗗浘鍒楄〃
             this.RefreshRoomListView();
         }
@@ -582,6 +571,8 @@
             {
                 //浠庡師鏉ョ殑鎴块棿绉婚櫎璁惧
                 this.DeleteDevice(device);
+                //璁惧鏀瑰彉鎴块棿鐨勮瘽,涓婚〉闇�瑕侀噸鏂板埛鏂�
+                UserView.UserPage.Instance.RefreshForm = true;
                 return;
             }
             //鎴块棿鏄惁淇敼
@@ -589,8 +580,8 @@
             {
                 return;
             }
-            //浠庡師鏉ョ殑鎴块棿绉婚櫎璁惧
-            this.DeleteDevice(device);
+            //浠庡師鏉ョ殑鎴块棿绉婚櫎璁惧,杩欓噷涓嶅垹闄ょ湡瀹炶澶囩殑鎴块棿
+            this.DeleteDevice(device, false);
 
             //娣诲姞鍒版柊鐨勬埧闂�
             var room = this.GetRoomById(roomId);
@@ -598,6 +589,8 @@
             {
                 this.AddDevice(room, device, saveRealRoom);
             }
+            //璁惧鏀瑰彉鎴块棿鐨勮瘽,涓婚〉闇�瑕侀噸鏂板埛鏂�
+            UserView.UserPage.Instance.RefreshForm = true;
         }
 
         /// <summary>
@@ -701,12 +694,20 @@
         /// 鍒犻櫎璁惧(杩欎釜鍑芥暟涓嶅垹闄ゆ垜鐨勫枩鐖�)
         /// </summary>
         /// <param name="device">瑕佸垹闄ょ殑璁惧瀵硅薄</param>
-        public void DeleteDevice(CommonDevice device)
+        /// <param name="deleteReal">鏄惁鍒犻櫎鐪熷疄鐗╃悊璁惧鐨勬埧闂�</param>
+        public void DeleteDevice(CommonDevice device, bool deleteReal = true)
         {
             if (device == null)
             {
                 return;
             }
+            //濡傛灉瀹冨彧鏈変竴涓洖璺�
+            if (deleteReal == true && LocalDevice.Current.GetDevicesCountByMac(device.DeviceAddr) == 1)
+            {
+                //鍒犻櫎鎺夊畠鐨勭湡瀹炵墿鐞嗚澶囩殑鎵�鍦ㄤ綅缃�
+                LocalDevice.Current.DeleteRealDeviceFromRoom(device);
+            }
+
             //鏍规嵁璁惧锛岃幏鍙栨墍鍦ㄧ殑鎴块棿
             var room = this.GetRoomByDevice(device);
             if (room == null)
@@ -721,7 +722,7 @@
             HdlAutoBackupLogic.AddOrEditorFile(room.FileName);
 
             //閫掑綊锛氬垹闄ゆ帀浠ュ墠鐨勬棫鏁版嵁瀵艰嚧鐨勫涓埧闂寸殑闂
-            this.DeleteDevice(device);
+            this.DeleteDevice(device, deleteReal);
         }
 
         /// <summary>

--
Gitblit v1.8.0