From 427ca74954126ce0d9aced18752442d064851863 Mon Sep 17 00:00:00 2001 From: wei <kaede@kaededeMacBook-Air.local> Date: 星期日, 06 十二月 2020 14:27:35 +0800 Subject: [PATCH] 20201206 --- HDL_ON/Entity/Room.cs | 116 ++++++++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 89 insertions(+), 27 deletions(-) diff --git a/HDL_ON/Entity/Room.cs b/HDL_ON/Entity/Room.cs index 91e78cd..7d39796 100644 --- a/HDL_ON/Entity/Room.cs +++ b/HDL_ON/Entity/Room.cs @@ -122,15 +122,25 @@ { foreach (var updateTemp in roomUpdateList) { + var localDelRoom = CurrentSpatial.needDeleteRooms.Find((obj) => obj.roomId == updateTemp.roomId); + if(localDelRoom!= null) + { + DelRoom(localDelRoom); + + continue; + } var localRoom = CurrentSpatial.RoomList.Find((obj) => obj.roomId == updateTemp.roomId); if (localRoom != null) { - localRoom.roomName = updateTemp.roomName; - localRoom.roomImage = updateTemp.roomImage; - localRoom.parentId = updateTemp.parentId; - localRoom.createTime = updateTemp.createTime; - localRoom.modifyTime = updateTemp.modifyTime; - localRoom.SaveRoomData(); + if (localRoom.modifyTime != updateTemp.modifyTime) + { + localRoom.roomName = updateTemp.roomName; + localRoom.roomImage = updateTemp.roomImage; + localRoom.parentId = updateTemp.parentId; + localRoom.createTime = updateTemp.createTime; + localRoom.modifyTime = updateTemp.modifyTime; + localRoom.SaveRoomData(); + } }else { updateTemp.SaveRoomData(); @@ -143,6 +153,8 @@ foreach(var newRoom in roomUpdateList) { newRoom.SaveRoomData(); + RoomList.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<Room>( + Newtonsoft.Json.JsonConvert.SerializeObject(newRoom))); } } } @@ -194,7 +206,7 @@ { try { - var floorsDataBytes = FileUtils.ReadFile(dataSavePath); + var floorsDataBytes = FileUtils.ReadFile("FloorsData"); if (floorsDataBytes != null) { var floorsDataString = System.Text.Encoding.UTF8.GetString(floorsDataBytes); @@ -262,7 +274,7 @@ if (tRoom != null) { FloorList.Remove(floor); - floor.modifyTime = ""; + floor.DeleteSign = true; } SaveFloorData(); } @@ -278,16 +290,7 @@ SaveSpatialInfo(); } - /// <summary> - /// 淇濆瓨鎴块棿鏁版嵁 - /// </summary> - public void SaveRoomData() - { - var ssd = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(this)); - FileUtils.WriteFileByBytes(dataSavePath, ssd); - MainPage.Log($"Save Room Data {roomName} : {uid}"); - SaveSpatialInfo(); - } + #endregion #region 鎴块棿鍒楄〃 @@ -316,11 +319,40 @@ var roomDataBytes = FileUtils.ReadFile(filePath); var roomDataString = System.Text.Encoding.UTF8.GetString(roomDataBytes); var room = Newtonsoft.Json.JsonConvert.DeserializeObject<Room>(roomDataString); - if (room != null) + if (room != null ) { - rooms.Add(room); + if(room.DeleteSign) + { + needDeleteRooms.Add(room); + }else + { + rooms.Add(room); + } } } + } + if(needDeleteRooms.Count>0) + { + //鍒犻櫎宸茬粡鏍囪闇�瑕佸垹闄ょ殑鎴块棿 + new System.Threading.Thread(() => + { + var delIds = new List<string>(); + foreach(var delTemp in needDeleteRooms) + { + delIds.Add(delTemp.roomId); + } + var pm = new HttpServerRequest(); + var pack = pm.DeleteRoom(delIds); + if (pack.Code == StateCode.SUCCESS) + { + foreach (var delTemp in needDeleteRooms) + { + FileUtils.DeleteFile(delTemp.dataSavePath); + } + needDeleteRooms.Clear(); + } + }) + { IsBackground = true }.Start(); } } catch (Exception ex) @@ -331,6 +363,12 @@ return rooms; } } + /// <summary> + /// 闇�瑕佸垹闄ょ殑鎴块棿 + /// 鏈湴鏍囪鍒犻櫎浜嗭紝浣嗘槸鏈嶅姟涓婃病鏈夊垹闄� + /// 鏃犳硶涓庢湇鍔″櫒閫氳閫犳垚鍒犻櫎涓嶆垚鍔燂紝閫氳鎴愬姛涔嬪悗瑕侀噸鏂板垹闄� + /// </summary> + List<Room> needDeleteRooms = new List<Room>(); /// <summary> /// 澧炲姞鎴块棿 /// </summary> @@ -346,14 +384,29 @@ /// <param name="room"></param> public void DelRoom(Room room) { - var tRoom = RoomList.Find((obj) => obj.uid == room.uid); - if (tRoom != null) + new System.Threading.Thread(() => { - FileUtils.DeleteFile(room.dataSavePath); - RoomList.Remove(room); room.DeleteSign = true; - } - room.SaveRoomData(); + room.SaveRoomData(); + var tRoom = RoomList.Find((obj) => obj.uid == room.uid); + if (tRoom != null) + { + RoomList.Remove(room); + } + var temp = needDeleteRooms.Find((obj) => obj.uid == room.uid); + if (temp != null) + { + needDeleteRooms.Add(room); + } + var pm = new HttpServerRequest(); + var pack = pm.DeleteRoom(new List<string>() { room.roomId }); + if (pack.Code == StateCode.SUCCESS) + { + FileUtils.DeleteFile(room.dataSavePath); + needDeleteRooms.Remove(room); + } + }) + { IsBackground = true }.Start(); } /// <summary> /// 鍒犻櫎鎵�鏈夋埧闂� @@ -390,7 +443,16 @@ { IsBackground = true }.Start(); } - + /// <summary> + /// 淇濆瓨鎴块棿鏁版嵁 + /// </summary> + public void SaveRoomData() + { + var ssd = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(this)); + FileUtils.WriteFileByBytes(dataSavePath, ssd); + MainPage.Log($"Save Room Data {roomName} : {uid}"); + SaveSpatialInfo(); + } #endregion } -- Gitblit v1.8.0