From 271faaf6664166dc368639b9f2e577f63f901be5 Mon Sep 17 00:00:00 2001 From: wei <kaede@kaededeMacBook-Air.local> Date: 星期三, 23 十二月 2020 22:23:57 +0800 Subject: [PATCH] 20201223-99 --- HDL_ON/Entity/Room.cs | 156 ++++++++++++++-------------------------------------- 1 files changed, 42 insertions(+), 114 deletions(-) diff --git a/HDL_ON/Entity/Room.cs b/HDL_ON/Entity/Room.cs index 0f3cc1d..055a4c6 100644 --- a/HDL_ON/Entity/Room.cs +++ b/HDL_ON/Entity/Room.cs @@ -65,121 +65,33 @@ ///// </summary> //public bool DeleteSign = false; - - protected ResponsePackNew SaveSpatialInfo() - { - var pm = new HttpServerRequest(); - var revPack = new ResponsePackNew(); - if (string.IsNullOrEmpty(createTime) && string.IsNullOrEmpty(modifyTime)) - { - revPack = pm.AddRoom(new List<SpatialInfo>() { this }); - } - else if (string.IsNullOrEmpty(createTime) && !string.IsNullOrEmpty(modifyTime)) - { - revPack = pm.DeleteRoom(new List<string>() { roomId }); - } - else if (!string.IsNullOrEmpty(createTime) && !string.IsNullOrEmpty(modifyTime)) - { - revPack = pm.UpdateRoom(new List<SpatialInfo>() { this }); - } - return revPack; - } - - /// <summary> - /// 涓嬭浇浜戠鎴块棿鏁版嵁 - /// </summary> - public void DownloadRoomList() - { - new System.Threading.Thread(() => - { - var pm = new HttpServerRequest(); - var pack = pm.GetRoomList(); - if (pack.Code == StateCode.SUCCESS) - { - var revData = Newtonsoft.Json.JsonConvert.DeserializeObject<SpatialApiPack>(pack.Data.ToString()); - if (revData != null) - { - CurrentSpatial.UpdateSpatialList(revData.list, OptionType.Cover); - } - } - else - { - MainPage.Log($"璇诲彇鎴块棿鏁版嵁澶辫触:\r\nCode:{pack.Code}; msg:{pack.message}"); - } - }) - { IsBackground = true }.Start(); - } - /// <summary> /// 鏇存柊绌洪棿淇℃伅 /// </summary> /// <param name="spatials">绌洪棿淇℃伅</param> /// <param name="optionType">鎿嶄綔绫诲瀷锛欰DD/UPDATE/DELETE</param> - public void UpdateSpatialList(List<SpatialInfo> spatials,OptionType optionType) + public void UpdateSpatialList(List<SpatialInfo> spatials) { var roomUpdateList = spatials.FindAll((obj) => obj.roomType == "ROOM"); var floorUpdateList = spatials.FindAll((obj) => obj.roomType == "FLOOR"); //澶勭悊鎴块棿鍒楄〃 if (roomUpdateList != null && roomUpdateList.Count > 0) { - if (optionType == OptionType.Update) + CurrentSpatial.DeleteAllRoom(); + foreach (var newRoom in roomUpdateList) { - foreach (var updateTemp in roomUpdateList) - { - var localRoom = CurrentSpatial.RoomList.Find((obj) => obj.roomId == updateTemp.roomId); - if (localRoom != null) - { - 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(false); - } - }else - { - updateTemp.SaveRoomData(false); - } - } - } - else if (optionType == OptionType.Cover) - { - CurrentSpatial.DeleteAllRoom(); - foreach(var newRoom in roomUpdateList) - { - newRoom.SaveRoomData(false); - RoomList.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<Room>( - Newtonsoft.Json.JsonConvert.SerializeObject(newRoom))); - } + newRoom.SaveRoomFile(); + RoomList.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<Room>( + Newtonsoft.Json.JsonConvert.SerializeObject(newRoom))); } } //妤煎眰鎴块棿鍒楄〃 if (floorUpdateList != null && floorUpdateList.Count > 0) { - if (optionType == OptionType.Update) + FloorList.Clear(); + foreach (var updateTemp in floorUpdateList) { - foreach(var updateTemp in floorUpdateList) - { - var localFloor = FloorList.Find((obj) => obj.roomId == updateTemp.roomId); - if (localFloor == null) - { - FloorList.Add(updateTemp); - } - else - { - localFloor = updateTemp; - } - } - } - if(optionType == OptionType.Cover) - { - FloorList.Clear(); - foreach (var updateTemp in floorUpdateList) - { - FloorList.Add(updateTemp); - } + FloorList.Add(updateTemp); } var ssd = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(FloorList)); Common.FileUtlis.Files.WriteFileByBytes(dataSavePath, ssd); @@ -439,7 +351,7 @@ /// <summary> /// 鍒濆鍖栨瘡涓埧闂寸殑鍔熻兘鏁版嵁 /// </summary> - public void InitRoomFunction() + public void InitRoomListFunctions() { new System.Threading.Thread(() => { @@ -448,8 +360,7 @@ //鍒濆鍖栦綇瀹呮墍鏈夋埧闂村姛鑳芥暟鎹� foreach (var r in RoomList) { - r.GetRoomFunctions(true); - r.GetRoomScenes(true); + InitRoomFuntion(r); } } catch (Exception ex) @@ -459,25 +370,42 @@ }) { IsBackground = true }.Start(); } + /// <summary> + /// 鍒濆鍖栨埧闂村姛鑳� + /// </summary> + /// <param name="tempRoom"></param> + public void InitRoomFuntion(Room tempRoom) + { + tempRoom.GetRoomFunctions(true); + tempRoom.GetRoomScenes(true); + } /// <summary> - /// 淇濆瓨鎴块棿鏁版嵁 + /// 淇濆瓨鎴块棿鏁版嵁鏂囦欢 /// </summary> - public string SaveRoomData(bool upServer = true) + public void SaveRoomFile() { - 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)); - Common.FileUtlis.Files.WriteFileByBytes(dataSavePath, ssd); - } - return packCode; + var ssd = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(this)); + Common.FileUtlis.Files.WriteFileByBytes(dataSavePath, ssd); } + /// <summary> + /// 鏇存柊鎴块棿鏁版嵁 + /// </summary> + public void UpdataRoomInfo() + { + new System.Threading.Thread(() => + { + var pm = new HttpServerRequest(); + var pack = pm.UpdateRoom(new List<SpatialInfo>() { this }); + this.SaveRoomFile(); + if (pack.Code != StateCode.SUCCESS) + { + IMessageCommon.Current.ShowErrorInfoAlter(pack.Code); + } + }) + { IsBackground = true }.Start(); + } + #endregion } -- Gitblit v1.8.0