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