From 43b0d5870d528f23ecd6aeceb6cfd4325188b46f Mon Sep 17 00:00:00 2001
From: wxr <464027401@qq.com>
Date: 星期四, 01 七月 2021 15:50:43 +0800
Subject: [PATCH] Revert "1"

---
 HDL_ON/Entity/Room.cs |  247 ++++++++++++++++++++-----------------------------
 1 files changed, 100 insertions(+), 147 deletions(-)

diff --git a/HDL_ON/Entity/Room.cs b/HDL_ON/Entity/Room.cs
index dcad772..609e788 100644
--- a/HDL_ON/Entity/Room.cs
+++ b/HDL_ON/Entity/Room.cs
@@ -46,9 +46,10 @@
         public SpatialInfo(string spatialType)
         {
             roomType = "FLOOR";
-            parentId = UserInfo.Current.CurReginID;
+            parentId = DB_ResidenceData.Instance.CurrentRegion.id;
         }
 
+        public string homeId = "";
         public string roomId = "";
         public string roomName = "";
         //public string roomImage = "";
@@ -56,6 +57,7 @@
         public string roomType = "";
         public string parentId = "";
         public string uid = Guid.NewGuid().ToString();
+        public string floorRoomName = "";
         public string createTime = "";
         public string modifyTime = "";
         ///// <summary>
@@ -65,121 +67,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");
+            CurrentSpatial.DeleteAllRoom();
+            FloorList.Clear();
             //澶勭悊鎴块棿鍒楄〃
             if (roomUpdateList != null && roomUpdateList.Count > 0)
             {
-                if (optionType == OptionType.Update)
+                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)
+                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);
@@ -198,6 +112,15 @@
         {
             get
             {
+                if (MainPage.NoLoginMode)
+                {
+                    if (floors == null)
+                    {
+                        floors = new List<SpatialInfo>();
+                    }
+                    return floors;
+                }
+
                 if (floors == null)
                 {
                     try
@@ -209,13 +132,14 @@
                             MainPage.Log(floorsDataString);
                             floors = Newtonsoft.Json.JsonConvert.DeserializeObject<List<SpatialInfo>>(floorsDataString);
                         }
-                        if (floors == null)
+                        if(floors == null)
                         {
                             floors = new List<SpatialInfo>();
                         }
                     }
                     catch (Exception ex)
                     {
+                            floors = new List<SpatialInfo>();
                         MainPage.Log($"妤煎眰鏁版嵁鍒濆鍖栧け璐ワ細{ex.Message}");
                     }
                 }
@@ -330,6 +254,14 @@
         {
             get
             {
+                if(MainPage.NoLoginMode )
+                {
+                    if (rooms == null)
+                    {
+                        rooms = new List<Room>();
+                    }
+                    return rooms;
+                }
                 if (rooms == null)
                 {
                     try
@@ -413,29 +345,34 @@
         /// </summary>
         public void DeleteAllRoom()
         {
-            foreach(var localRoom in RoomList)
+            for(int i=0;i< RoomList.Count;)
             {
-                Common.FileUtlis.Files.DeleteFile(localRoom.dataSavePath);
+                Common.FileUtlis.Files.DeleteFile(RoomList[i].dataSavePath);
+                RoomList.RemoveAt(i);
             }
             rooms = null;
         }
 
-        public void ClearRooms()
+        public void Clear()
         {
-            if (floors != null)
+            if (_currentSpatial != null)
             {
-                floors.Clear();
-            }
-            if (rooms != null)
-            {
-                rooms.Clear();
+                if (_currentSpatial.floors != null)
+                {
+                    _currentSpatial.floors.Clear();
+                }
+                if (_currentSpatial.rooms != null)
+                {
+                    _currentSpatial.rooms.Clear();
+                }
+                _currentSpatial = null;
             }
         }
 
         /// <summary>
         /// 鍒濆鍖栨瘡涓埧闂寸殑鍔熻兘鏁版嵁
         /// </summary>
-        public void InitRoomFunction()
+        public void InitRoomListFunctions()
         {
             new System.Threading.Thread(() =>
             {
@@ -444,8 +381,7 @@
                     //鍒濆鍖栦綇瀹呮墍鏈夋埧闂村姛鑳芥暟鎹�
                     foreach (var r in RoomList)
                     {
-                        r.GetRoomFunctions(true);
-                        r.GetRoomScenes(true);
+                        InitRoomFuntion(r);
                     }
                 }
                 catch (Exception ex)
@@ -455,25 +391,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
 
     }
@@ -519,7 +472,7 @@
             {
                 if (CurrentSpatial.FloorList.Count > 0)
                 {
-                    var f = CurrentSpatial.FloorList.Find((obj) => obj.roomId == parentId);
+                    var f = CurrentSpatial.FloorList.Find((obj) => obj.uid == parentId);
                     if (f != null)
                     {
                         return f.roomName + " ";
@@ -529,10 +482,10 @@
             }
         }
 
-        /// <summary>
-        /// 鎴块棿鍔熻兘鍒楄〃
-        /// </summary>
-        List<Function> functions = new List<Function>();
+        ///// <summary>
+        ///// 鎴块棿鍔熻兘鍒楄〃
+        ///// </summary>
+        //List<Function> functions = new List<Function>();
         /// <summary>
         /// 鑾峰彇鎴块棿鍔熻兘鍒楄〃
         /// </summary>
@@ -540,8 +493,8 @@
         {
             if (needRefresh)
             {
-                functions = new List<Function>();
             }
+            var functions = new List<Function>();
             if (functions.Count == 0)
             {
                 foreach (var f in FunctionList.List.GetDeviceFunctionList())
@@ -554,22 +507,22 @@
             }
             return functions;
         }
-        /// <summary>
-        /// 澧炲姞鎴块棿鍔熻兘
-        /// 鎿嶄綔鐨勬槸缂撳瓨鏁版嵁锛屼笉鐢ㄤ繚瀛�
-        /// </summary>
-        public void AddRoomFunction(Function function)
-        {
-            functions.Add(function);
-        }
-        /// <summary>
-        /// 鍒犻櫎鎴块棿鍔熻兘
-        /// 鎿嶄綔鐨勬槸缂撳瓨鏁版嵁锛屼笉鐢ㄤ繚瀛�
-        /// </summary>
-        public void RemoveRoomFunction(Function function)
-        {
-            functions.Remove(functions.Find((obj) => obj.sid == function.sid));
-        }
+        ///// <summary>
+        ///// 澧炲姞鎴块棿鍔熻兘
+        ///// 鎿嶄綔鐨勬槸缂撳瓨鏁版嵁锛屼笉鐢ㄤ繚瀛�
+        ///// </summary>
+        //public void AddRoomFunction(Function function)
+        //{
+        //    functions.Add(function);
+        //}
+        ///// <summary>
+        ///// 鍒犻櫎鎴块棿鍔熻兘
+        ///// 鎿嶄綔鐨勬槸缂撳瓨鏁版嵁锛屼笉鐢ㄤ繚瀛�
+        ///// </summary>
+        //public void RemoveRoomFunction(Function function)
+        //{
+        //    functions.Remove(functions.Find((obj) => obj.sid == function.sid));
+        //}
         /// <summary>
         /// 鎴块棿鍦烘櫙鍒楄〃
         /// </summary>

--
Gitblit v1.8.0