From 98ceb6bd2021f9ff136cda27eef28676dd7b5d92 Mon Sep 17 00:00:00 2001 From: 黄学彪 <hxb@hdlchina.com.cn> Date: 星期四, 21 五月 2020 13:24:02 +0800 Subject: [PATCH] 最后的版本 --- ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlRoomLogic.cs | 69 +++++++++++++++++++--------------- 1 files changed, 39 insertions(+), 30 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlRoomLogic.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlRoomLogic.cs index fff74a2..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(); }); } @@ -227,7 +212,8 @@ /// 澧炲姞鎴块棿 /// </summary> /// <param name="room">Room.</param> - public void AddRoom(Room room) + /// <param name="rorefreshRoomViewom">鏄惁鍒锋柊鎴块棿瑙嗗浘鍒楄〃鐣岄潰</param> + public void AddRoom(Room room, bool refreshRoomView = true) { if (Global.IsExistsByHomeId(room.FileName) == true || Config.Instance.Home.ListRooms.Contains(room.Id) == true) @@ -242,8 +228,11 @@ room.Save(); //澶囦唤 HdlAutoBackupLogic.AddOrEditorFile(room.FileName); - //鍒锋柊鎴块棿瑙嗗浘鍒楄〃 - this.RefreshRoomListView(); + if (refreshRoomView == true) + { + //鍒锋柊鎴块棿瑙嗗浘鍒楄〃 + this.RefreshRoomListView(); + } } #endregion @@ -301,6 +290,10 @@ Global.DeleteFilebyHomeId(roomFilePath); } HdlAutoBackupLogic.DeleteFile(roomFilePath); + + //鏍规嵁鎴块棿ID,绉婚櫎鎸囧畾鐨勭湡瀹炵墿鐞嗚澶囩殑鎵�灞炴埧闂磋褰� + Common.LocalDevice.Current.DeleteRealDeviceByRoomId(roomId); + //鍒锋柊鎴块棿瑙嗗浘鍒楄〃 this.RefreshRoomListView(); } @@ -578,6 +571,8 @@ { //浠庡師鏉ョ殑鎴块棿绉婚櫎璁惧 this.DeleteDevice(device); + //璁惧鏀瑰彉鎴块棿鐨勮瘽,涓婚〉闇�瑕侀噸鏂板埛鏂� + UserView.UserPage.Instance.RefreshForm = true; return; } //鎴块棿鏄惁淇敼 @@ -585,8 +580,8 @@ { return; } - //浠庡師鏉ョ殑鎴块棿绉婚櫎璁惧 - this.DeleteDevice(device); + //浠庡師鏉ョ殑鎴块棿绉婚櫎璁惧,杩欓噷涓嶅垹闄ょ湡瀹炶澶囩殑鎴块棿 + this.DeleteDevice(device, false); //娣诲姞鍒版柊鐨勬埧闂� var room = this.GetRoomById(roomId); @@ -594,6 +589,8 @@ { this.AddDevice(room, device, saveRealRoom); } + //璁惧鏀瑰彉鎴块棿鐨勮瘽,涓婚〉闇�瑕侀噸鏂板埛鏂� + UserView.UserPage.Instance.RefreshForm = true; } /// <summary> @@ -697,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) @@ -717,7 +722,7 @@ HdlAutoBackupLogic.AddOrEditorFile(room.FileName); //閫掑綊锛氬垹闄ゆ帀浠ュ墠鐨勬棫鏁版嵁瀵艰嚧鐨勫涓埧闂寸殑闂 - this.DeleteDevice(device); + this.DeleteDevice(device, deleteReal); } /// <summary> @@ -924,6 +929,10 @@ /// <returns></returns> public List<Room> GetFloorSortRoom(string i_floorKeys, bool getShard = true) { + if (i_floorKeys == null) + { + i_floorKeys = string.Empty; + } Dictionary<string, List<string>> dicAllSort = new Dictionary<string, List<string>>(); //璇诲彇鎴块棿椤哄簭 string fullName = UserCenterLogic.CombinePath(DirNameResourse.LocalMemoryDirectory, DirNameResourse.RoomSortFile); -- Gitblit v1.8.0