From 64dbbfe1d6488635e160189a704afccffc7d34d0 Mon Sep 17 00:00:00 2001
From: wxr <464027401@qq.com>
Date: 星期一, 07 十二月 2020 11:33:06 +0800
Subject: [PATCH] Merge branch 'WJC'

---
 HDL_ON/Entity/Room.cs |  140 +++++++++++++++++++++++++++++++++++++---------
 1 files changed, 111 insertions(+), 29 deletions(-)

diff --git a/HDL_ON/Entity/Room.cs b/HDL_ON/Entity/Room.cs
index 91e78cd..f38f8fc 100644
--- a/HDL_ON/Entity/Room.cs
+++ b/HDL_ON/Entity/Room.cs
@@ -50,7 +50,8 @@
 
         public string roomId = "";
         public string roomName = "";
-        public string roomImage = "";
+        //public string roomImage = "";
+        public string roomImage = "Classification/Room/Roombg.png";
         public string roomType = "";
         public string parentId = "";
         public string uid = Guid.NewGuid().ToString();
@@ -122,15 +123,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 +154,8 @@
                     foreach(var newRoom in roomUpdateList)
                     {
                         newRoom.SaveRoomData();
+                        RoomList.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<Room>(
+                            Newtonsoft.Json.JsonConvert.SerializeObject(newRoom)));
                     }
                 }
             }
@@ -194,7 +207,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 +275,7 @@
             if (tRoom != null)
             {
                 FloorList.Remove(floor);
-                floor.modifyTime = "";
+                floor.DeleteSign = true;
             }
             SaveFloorData();
         }
@@ -278,16 +291,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 +320,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 +364,12 @@
                 return rooms;
             }
         }
+        /// <summary>
+        /// 闇�瑕佸垹闄ょ殑鎴块棿
+        /// 鏈湴鏍囪鍒犻櫎浜嗭紝浣嗘槸鏈嶅姟涓婃病鏈夊垹闄�
+        /// 鏃犳硶涓庢湇鍔″櫒閫氳閫犳垚鍒犻櫎涓嶆垚鍔燂紝閫氳鎴愬姛涔嬪悗瑕侀噸鏂板垹闄�
+        /// </summary>
+        List<Room> needDeleteRooms = new List<Room>();
         /// <summary>
         /// 澧炲姞鎴块棿
         /// </summary>
@@ -346,14 +385,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 +444,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
 
     }
@@ -405,7 +468,26 @@
             roomType = "ROOM";
             roomName = "Room";
         }
-        public string backgroundImage = "Classification/Room/Roombg.png";
+        //public string backgroundImage = "Classification/Room/Roombg.png";
+        public string backgroundImage
+        {
+            get
+            {
+                if (string.IsNullOrEmpty(roomImage))
+                {
+                    return "Classification/Room/Roombg.png";
+                }
+                else
+                {
+                    return roomImage;
+                }
+            }
+            set
+            {
+                roomImage = value;
+            }
+        }
+
 
         /// <summary>
         /// 妤煎眰

--
Gitblit v1.8.0