From 48ba446936b51fffafa7c3600c0dadc6ac0e8c20 Mon Sep 17 00:00:00 2001
From: 陈嘉乐 <cjl@hdlchina.com.cn>
Date: 星期五, 10 七月 2020 10:52:13 +0800
Subject: [PATCH] 2020-07-10-01

---
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlRoomLogic.cs |   61 ++++++++++++++++--------------
 1 files changed, 32 insertions(+), 29 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlRoomLogic.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlRoomLogic.cs
index 8daca3a..75af7bc 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,10 @@
             {
                 //浠庡師鏉ョ殑鎴块棿绉婚櫎璁惧
                 this.DeleteDevice(device);
+                //绉婚櫎鎴戠殑鍠滅埍
+                this.DeleteLoveDevice(device);
+                //璁惧鏀瑰彉鎴块棿鐨勮瘽,涓婚〉闇�瑕侀噸鏂板埛鏂�
+                UserView.UserPage.Instance.RefreshForm = true;
                 return;
             }
             //鎴块棿鏄惁淇敼
@@ -589,8 +582,8 @@
             {
                 return;
             }
-            //浠庡師鏉ョ殑鎴块棿绉婚櫎璁惧
-            this.DeleteDevice(device);
+            //浠庡師鏉ョ殑鎴块棿绉婚櫎璁惧,杩欓噷涓嶅垹闄ょ湡瀹炶澶囩殑鎴块棿
+            this.DeleteDevice(device, false);
 
             //娣诲姞鍒版柊鐨勬埧闂�
             var room = this.GetRoomById(roomId);
@@ -598,6 +591,8 @@
             {
                 this.AddDevice(room, device, saveRealRoom);
             }
+            //璁惧鏀瑰彉鎴块棿鐨勮瘽,涓婚〉闇�瑕侀噸鏂板埛鏂�
+            UserView.UserPage.Instance.RefreshForm = true;
         }
 
         /// <summary>
@@ -627,7 +622,7 @@
             {
                 return i_room.Name;
             }
-            var floorName = Config.Instance.Home.GetFloorNameById(i_room.FloorId);
+            var floorName = HdlResidenceLogic.Current.GetFloorNameById(i_room.FloorId);
             if (floorName == null)
             {
                 return i_room.Name;
@@ -701,12 +696,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 +724,7 @@
             HdlAutoBackupLogic.AddOrEditorFile(room.FileName);
 
             //閫掑綊锛氬垹闄ゆ帀浠ュ墠鐨勬棫鏁版嵁瀵艰嚧鐨勫涓埧闂寸殑闂
-            this.DeleteDevice(device);
+            this.DeleteDevice(device, deleteReal);
         }
 
         /// <summary>
@@ -921,7 +924,7 @@
         #region 鈻� 妤煎眰鍜屾埧闂撮『搴忕浉鍏砡________________
 
         /// <summary>
-        /// 鏍规嵁妤煎眰鐨勪富閿幏鍙栨帓搴忓悗鐨勬埧闂村垪琛�(鏀寔鏃犳ゼ灞傛ā寮�)
+        /// 鏍规嵁妤煎眰鐨勪富閿幏鍙栨帓搴忓悗鐨勬埧闂村垪琛�(鏀寔鏃犳ゼ灞傛ā寮�,涓嶈幏鍙栨敹钘忔埧闂�)
         /// </summary>
         /// <param name="i_floorKeys">妤煎眰鐨勪富閿�</param>
         /// <param name="getShard">鍒嗕韩鐨勬埧闂存槸鍚︿篃鑾峰彇</param>

--
Gitblit v1.8.0