| | |
| | | { |
| | | 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(); |
| | |
| | | foreach(var newRoom in roomUpdateList) |
| | | { |
| | | newRoom.SaveRoomData(); |
| | | RoomList.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<Room>( |
| | | Newtonsoft.Json.JsonConvert.SerializeObject(newRoom))); |
| | | } |
| | | } |
| | | } |
| | |
| | | { |
| | | try |
| | | { |
| | | var floorsDataBytes = FileUtils.ReadFile(dataSavePath); |
| | | var floorsDataBytes = FileUtils.ReadFile("FloorsData"); |
| | | if (floorsDataBytes != null) |
| | | { |
| | | var floorsDataString = System.Text.Encoding.UTF8.GetString(floorsDataBytes); |
| | |
| | | if (tRoom != null) |
| | | { |
| | | FloorList.Remove(floor); |
| | | floor.modifyTime = ""; |
| | | floor.DeleteSign = true; |
| | | } |
| | | SaveFloorData(); |
| | | } |
| | |
| | | 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 房间列表 |
| | |
| | | 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) |
| | |
| | | return rooms; |
| | | } |
| | | } |
| | | /// <summary> |
| | | /// 需要删除的房间 |
| | | /// 本地标记删除了,但是服务上没有删除 |
| | | /// 无法与服务器通讯造成删除不成功,通讯成功之后要重新删除 |
| | | /// </summary> |
| | | List<Room> needDeleteRooms = new List<Room>(); |
| | | /// <summary> |
| | | /// 增加房间 |
| | | /// </summary> |
| | |
| | | /// <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> |
| | | /// 删除所有房间 |
| | |
| | | { 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 |
| | | |
| | | } |