From 62d77d3bb8e7215d9da9ecf6f5aeda0b69f805f8 Mon Sep 17 00:00:00 2001 From: wei <kaede@kaededeMacBook-Air.local> Date: 星期二, 08 十二月 2020 18:57:15 +0800 Subject: [PATCH] 20201208 --- HDL_ON/Entity/Room.cs | 169 +++++++++++++++++++++++++------------------------------ 1 files changed, 77 insertions(+), 92 deletions(-) diff --git a/HDL_ON/Entity/Room.cs b/HDL_ON/Entity/Room.cs index f38f8fc..389c764 100644 --- a/HDL_ON/Entity/Room.cs +++ b/HDL_ON/Entity/Room.cs @@ -1,6 +1,7 @@ 锘縰sing System; using System.Collections.Generic; using HDL_ON.DAL.Server; +using Shared; namespace HDL_ON.Entity { @@ -57,29 +58,31 @@ public string uid = Guid.NewGuid().ToString(); public string createTime = ""; public string modifyTime = ""; - /// <summary> - /// 鍒犻櫎鏍囪 - /// 闇�瑕佸垹闄ゆ暟鎹椂锛屾爣璁颁负锛歵rue - /// 鐢变簯绔垹闄ゆ垚鍔熶箣鍚庯紝杩斿洖鏁版嵁鍐嶆竻闄ゆ湰鍦版暟鎹� - /// </summary> - public bool DeleteSign = false; + ///// <summary> + ///// 鍒犻櫎鏍囪 20201208锛氬彲娆�:APP鐨勫湪绾垮拰绂荤嚎闂锛屽垰鍒氱‘瀹氫簡锛岀绾挎棤娉曠紪杈戯紝鍙兘鎺у埗 + ///// 闇�瑕佸垹闄ゆ暟鎹椂锛屾爣璁颁负锛歵rue + ///// 鐢变簯绔垹闄ゆ垚鍔熶箣鍚庯紝杩斿洖鏁版嵁鍐嶆竻闄ゆ湰鍦版暟鎹� + ///// </summary> + //public bool DeleteSign = false; - protected void SaveSpatialInfo() + protected ResponsePackNew SaveSpatialInfo() { var pm = new HttpServerRequest(); + var revPack = new ResponsePackNew(); if (string.IsNullOrEmpty(createTime) && string.IsNullOrEmpty(modifyTime)) { - pm.AddRoom(new List<SpatialInfo>() { this }); + revPack = pm.AddRoom(new List<SpatialInfo>() { this }); } else if (string.IsNullOrEmpty(createTime) && !string.IsNullOrEmpty(modifyTime)) { - pm.DeleteRoom(new List<string>() { roomId }); + revPack = pm.DeleteRoom(new List<string>() { roomId }); } else if (!string.IsNullOrEmpty(createTime) && !string.IsNullOrEmpty(modifyTime)) { - pm.UpdateRoom(new List<SpatialInfo>() { this }); + revPack = pm.UpdateRoom(new List<SpatialInfo>() { this }); } + return revPack; } /// <summary> @@ -123,13 +126,6 @@ { 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) { @@ -140,11 +136,11 @@ localRoom.parentId = updateTemp.parentId; localRoom.createTime = updateTemp.createTime; localRoom.modifyTime = updateTemp.modifyTime; - localRoom.SaveRoomData(); + localRoom.SaveRoomData(false); } }else { - updateTemp.SaveRoomData(); + updateTemp.SaveRoomData(false); } } } @@ -153,7 +149,7 @@ CurrentSpatial.DeleteAllRoom(); foreach(var newRoom in roomUpdateList) { - newRoom.SaveRoomData(); + newRoom.SaveRoomData(false); RoomList.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<Room>( Newtonsoft.Json.JsonConvert.SerializeObject(newRoom))); } @@ -176,7 +172,6 @@ localFloor = updateTemp; } } - CurrentSpatial.SaveFloorData(); } if(optionType == OptionType.Cover) { @@ -185,9 +180,9 @@ { FloorList.Add(updateTemp); } - var ssd = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(FloorList)); - FileUtils.WriteFileByBytes(dataSavePath, ssd); } + var ssd = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(FloorList)); + FileUtils.WriteFileByBytes(dataSavePath, ssd); } } @@ -254,8 +249,10 @@ /// <param name="floor"></param> public void AddFloor(SpatialInfo floor) { - FloorList.Add(floor); - SaveFloorData(); + if (floor.SaveFloorData() == StateCode.SUCCESS) + { + FloorList.Add(floor); + } } /// <summary> /// 鏇存柊妤煎眰淇℃伅 @@ -271,24 +268,44 @@ /// <param name="floor"></param> public void DelFloor(SpatialInfo floor) { - var tRoom = FloorList.Find((obj) => obj.uid == floor.uid); - if (tRoom != null) + if (floor == null) + return; + var pm = new HttpServerRequest(); + var code = pm.DeleteRoom(new List<string>() { floor.roomId }).Code; + if (code == StateCode.SUCCESS) { - FloorList.Remove(floor); - floor.DeleteSign = true; + var tRoom = FloorList.Find((obj) => obj.uid == floor.uid); + if (tRoom != null) + { + FloorList.Remove(floor); + } + var ssd = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(FloorList)); + FileUtils.WriteFileByBytes(dataSavePath, ssd); + MainPage.Log($"Save floor Data"); } - SaveFloorData(); + else + { + Utlis.ShowTip(Language.StringByID(StringId.DeleteFloorFail) + "Code:" + code); + } } /// <summary> /// 淇濆瓨妤煎眰鏁版嵁 /// </summary> - void SaveFloorData() + string SaveFloorData() { - var ssd = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(FloorList)); - FileUtils.WriteFileByBytes(dataSavePath, ssd); - MainPage.Log($"Save floor Data"); - SaveSpatialInfo(); + var pack = SaveSpatialInfo(); + if (pack.Code == StateCode.SUCCESS) + { + var ssd = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(FloorList)); + FileUtils.WriteFileByBytes(dataSavePath, ssd); + MainPage.Log($"Save floor Data"); + } + else + { + Utlis.ShowTip(Language.StringByID(StringId.EditRoomInfoFail) + "Code:" + pack.Code); + } + return pack.Code; } @@ -320,40 +337,11 @@ 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) { - if(room.DeleteSign) - { - needDeleteRooms.Add(room); - }else - { - rooms.Add(room); - } + 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) @@ -365,19 +353,15 @@ } } /// <summary> - /// 闇�瑕佸垹闄ょ殑鎴块棿 - /// 鏈湴鏍囪鍒犻櫎浜嗭紝浣嗘槸鏈嶅姟涓婃病鏈夊垹闄� - /// 鏃犳硶涓庢湇鍔″櫒閫氳閫犳垚鍒犻櫎涓嶆垚鍔燂紝閫氳鎴愬姛涔嬪悗瑕侀噸鏂板垹闄� - /// </summary> - List<Room> needDeleteRooms = new List<Room>(); - /// <summary> /// 澧炲姞鎴块棿 /// </summary> /// <param name="room"></param> public void AddRoom(Room room) { - RoomList.Add(room); - room.SaveRoomData(); + if (room.SaveRoomData() == StateCode.SUCCESS) + { + RoomList.Add(room); + } } /// <summary> /// 鍒犻櫎鎴块棿 @@ -387,24 +371,16 @@ { new System.Threading.Thread(() => { - room.DeleteSign = true; - 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) { + var tRoom = RoomList.Find((obj) => obj.uid == room.uid); + if (tRoom != null) + { + RoomList.Remove(room); + } FileUtils.DeleteFile(room.dataSavePath); - needDeleteRooms.Remove(room); } }) { IsBackground = true }.Start(); @@ -447,12 +423,21 @@ /// <summary> /// 淇濆瓨鎴块棿鏁版嵁 /// </summary> - public void SaveRoomData() + public string SaveRoomData(bool upServer = true) { - var ssd = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(this)); - FileUtils.WriteFileByBytes(dataSavePath, ssd); - MainPage.Log($"Save Room Data {roomName} : {uid}"); - SaveSpatialInfo(); + var packCode = StateCode.SUCCESS; + bool needSave = true; + if (upServer) + { + packCode = SaveSpatialInfo().Code; + } + if (needSave) + { + var ssd = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(this)); + FileUtils.WriteFileByBytes(dataSavePath, ssd); + MainPage.Log($"Save Room Data {roomName} : {uid}"); + } + return packCode; } #endregion -- Gitblit v1.8.0