From 18dcc85b17b351cf7948e22908d5128231aea2e0 Mon Sep 17 00:00:00 2001
From: WJC <wjc@hdlchina.com.cn>
Date: 星期二, 29 十月 2019 14:32:12 +0800
Subject: [PATCH] 2019-10-29-2

---
 ZigbeeApp/Shared/Common/Room.cs |  612 ++++++++++++++++++++++++-------------------------------
 1 files changed, 270 insertions(+), 342 deletions(-)

diff --git a/ZigbeeApp/Shared/Common/Room.cs b/ZigbeeApp/Shared/Common/Room.cs
old mode 100755
new mode 100644
index 676bce3..b15f457
--- a/ZigbeeApp/Shared/Common/Room.cs
+++ b/ZigbeeApp/Shared/Common/Room.cs
@@ -44,7 +44,7 @@
         {
             get
             {
-               return Config.Instance.Home.GetFloorNameById(FloorId);
+                return Config.Instance.Home.GetFloorNameById(FloorId);
             }
         }
         /// <summary>
@@ -67,12 +67,12 @@
         /// </summary>
         public Dictionary<string, string> FloorList = new Dictionary<string, string> { };
 
-        /// <summary>
-        /// 娓╁害浼犳劅鍣�(璁惧涓婚敭)
+        /// <summary>
+        /// 娓╁害浼犳劅鍣�(璁惧涓婚敭)
         /// </summary>
         public string TemperatrueDevice = string.Empty;
-        /// <summary>
-        /// 婀垮害浼犳劅鍣�(璁惧涓婚敭)
+        /// <summary>
+        /// 婀垮害浼犳劅鍣�(璁惧涓婚敭)
         /// </summary>
         public string HumidityDevice = string.Empty;
 
@@ -94,7 +94,7 @@
         /// <summary>
         /// 鍠滅埍鎴块棿id
         /// </summary>
-        public const string LoveRoomId= "Favorite";
+        public const string LoveRoomId = "Favorite";
 
         /// <summary>
         /// 鏄惁鏄粯璁ゅ枩鐖辨埧闂�
@@ -217,7 +217,7 @@
             {
                 List<DeviceUI> deviceList = new List<DeviceUI>();
                 for (int i = 0; i < Lists.Count; i++)
-                {
+                {
                     var room = Lists[i];
                     if (room.IsSharedRoom)
                     {
@@ -296,35 +296,35 @@
             }
         }
 
-        /// <summary>
-        /// 浠庢湰鍦伴噸鏂板姞杞藉叏閮ㄧ殑鎴块棿
+        /// <summary>
+        /// 浠庢湰鍦伴噸鏂板姞杞藉叏閮ㄧ殑鎴块棿
         /// </summary>
-        public static void RefreshAllRoomByLocation()
-        {
-            Lists.Clear();
-            var homeTemp = Config.Instance.Home;
-            homeTemp.RoomFilePathList.Clear();
-
-            var listFile = Global.FileListByHomeId();
-
-            //鎴戠殑鍠滅埍鐨勬埧闂村繀椤昏鍦ㄧ0浣嶆墠琛�
-            string fRoom = "Room_Favorite.json";
-            if (listFile.Contains(fRoom) == true)
-            {
-                listFile.Remove(fRoom);
-                homeTemp.AddRoomListFilePath(fRoom);
-            }
-
-            foreach (string fileName in listFile)
-            {
-                if (fileName.StartsWith("Room_"))
-                {
-                    homeTemp.AddRoomListFilePath(fileName);
-                }
-            }
-            homeTemp.Save(false);
-            CanInitAllRoom = true;
-            InitAllRoom();
+        public static void RefreshAllRoomByLocation()
+        {
+            Lists.Clear();
+            var homeTemp = Config.Instance.Home;
+            homeTemp.RoomFilePathList.Clear();
+
+            var listFile = Global.FileListByHomeId();
+
+            //鎴戠殑鍠滅埍鐨勬埧闂村繀椤昏鍦ㄧ0浣嶆墠琛�
+            string fRoom = "Room_Favorite.json";
+            if (listFile.Contains(fRoom) == true)
+            {
+                listFile.Remove(fRoom);
+                homeTemp.AddRoomListFilePath(fRoom);
+            }
+
+            foreach (string fileName in listFile)
+            {
+                if (fileName.StartsWith("Room_"))
+                {
+                    homeTemp.AddRoomListFilePath(fileName);
+                }
+            }
+            homeTemp.Save(false);
+            CanInitAllRoom = true;
+            InitAllRoom();
         }
 
         #endregion
@@ -429,7 +429,7 @@
                     //璁惧锛坉eviceUI锛�
                     beforeRoom.DeviceUIList.Clear();
                     foreach (var deviceFilePath in beforeRoom.DeviceUIFilePathList)
-                    {
+                    {
                         beforeRoom.DeviceUIList.Add(Common.LocalDevice.Current.GetDeviceUI(deviceFilePath));
                     }
                     //鍦烘櫙(SceneUI)
@@ -480,7 +480,7 @@
                 }
                 return nowRoom;
             }
-            catch(Exception ex)
+            catch (Exception ex)
             {
                 return null;
             }
@@ -514,15 +514,15 @@
         public string GetRoomNameByDevice(CommonDevice device)
         {
             var room = this.GetRoomByDevice(device);
-            if (room == null)
-            {
-                //鏈垎閰嶅尯鍩�
-                return Language.StringByID(R.MyInternationalizationString.uDeviceNotAssignedRoom);
+            if (room == null)
+            {
+                //鏈垎閰嶅尯鍩�
+                return Language.StringByID(R.MyInternationalizationString.uDeviceNotAssignedRoom);
             }
-            if (Config.Instance.Home.FloorDics.ContainsKey(room.FloorId) == true)
-            {
-                //(妤煎眰+鎴块棿鍚�)
-                return Config.Instance.Home.FloorDics[room.FloorId] + " " + room.Name;
+            if (Config.Instance.Home.FloorDics.ContainsKey(room.FloorId) == true)
+            {
+                //(妤煎眰+鎴块棿鍚�)
+                return Config.Instance.Home.FloorDics[room.FloorId] + " " + room.Name;
             }
             return room.Name;
         }
@@ -534,8 +534,8 @@
         /// <param name="device">璁惧瀵硅薄</param>
         public Room GetRoomByDevice(CommonDevice device)
         {
-            var deviceUI = new DeviceUI { };
-            deviceUI.DeviceAddr = device.DeviceAddr;
+            var deviceUI = new DeviceUI { };
+            deviceUI.DeviceAddr = device.DeviceAddr;
             deviceUI.DeviceEpoint = device.DeviceEpoint;
 
             return Lists.Find((obj) => obj.IsLove == false && obj.DeviceUIFilePathList.Contains(deviceUI.FileName));
@@ -581,21 +581,21 @@
         /// </summary>
         /// <param name="id"></param>
         /// <returns></returns>
-        public  List<Room> GetRoomsByFloorId(string id)
+        public List<Room> GetRoomsByFloorId(string id)
         {
-            return Lists.FindAll((obj) => obj.FloorId==id);
+            return Lists.FindAll((obj) => obj.FloorId == id);
         }
         /// <summary>
         /// 鑾峰彇褰撳墠妤煎眰鐨勬埧闂村悕绉�
         /// </summary>
         /// <param name="id"></param>
         /// <returns></returns>
-        public  List<string> GetRoomNamesByFloorId(string id)
+        public List<string> GetRoomNamesByFloorId(string id)
         {
             List<string> names = new List<string> { };
-            foreach(var r in Lists)
+            foreach (var r in Lists)
             {
-                if(r.FloorId==id)
+                if (r.FloorId == id)
                 {
                     names.Add(r.Name);
                 }
@@ -608,9 +608,9 @@
         /// </summary>
         /// <param name="id"></param>
         /// <returns></returns>
-        public  List<Room> GetRoomsByFloorIdAppendLoveRoom(string id)
+        public List<Room> GetRoomsByFloorIdAppendLoveRoom(string id)
         {
-            var r= Lists.FindAll((obj) => obj.FloorId == id);
+            var r = Lists.FindAll((obj) => obj.FloorId == id);
             r.Insert(0, GetLoveRoom());
             return r;
         }
@@ -619,7 +619,7 @@
         /// 鑾峰彇褰撳墠妤煎眰鐨勬埧闂�(鎷兼帴浜嗐�愬父鐢ㄣ�戝湪绗竴浣�)
         /// </summary>
         /// <returns></returns>
-        public  List<Room> GetRoomsByCurrentFloorIdAppendLoveRoom()
+        public List<Room> GetRoomsByCurrentFloorIdAppendLoveRoom()
         {
             var r = Lists.FindAll((obj) => obj.FloorId == Config.Instance.Home.CurrentFloorId);
             r.Insert(0, GetLoveRoom());
@@ -647,12 +647,12 @@
 
             //娣诲姞鍒版柊鐨勬埧闂�
             var room = this.GetRoomById(roomId);
-            if (room != null)
-            {
-                room.AddDevice(device);
+            if (room != null)
+            {
+                room.AddDevice(device);
             }
-        }
-
+        }
+
         /// <summary>
         /// 鎴块棿鍚嶅瓧鏄惁鏈変慨鏀�
         /// </summary>
@@ -662,9 +662,9 @@
         public bool IsRoomChanged(CommonDevice device, string roomId)
         {
             var room = this.GetRoomByDevice(device);
-            if (room == null || room.Id != roomId)
-            {
-                return true;
+            if (room == null || room.Id != roomId)
+            {
+                return true;
             }
             return false;
         }
@@ -721,7 +721,7 @@
             try
             {
                 var newPath = System.IO.Path.Combine(Config.Instance.FullPath, newFile);
-                var path = System.IO.Path.Combine(Shared.IO.FileUtils.RootPath,oldFile);
+                var path = System.IO.Path.Combine(Shared.IO.FileUtils.RootPath, oldFile);
                 Global.MoveFileToDirectory(path, newPath);
                 //澶囦唤
                 Phone.UserCenter.HdlAutoBackupLogic.AddOrEditorFile(oldFile);
@@ -822,25 +822,25 @@
                 return;
             }
             DeviceUI deviceUI = new DeviceUI();
-            deviceUI.DeviceAddr = device.DeviceAddr;
+            deviceUI.DeviceAddr = device.DeviceAddr;
             deviceUI.DeviceEpoint = device.DeviceEpoint;
 
             //鏍规嵁璁惧锛岃幏鍙栨墍鍦ㄧ殑鎴块棿
             var room = this.GetRoomByDevice(device);
-            if (room == null)
-            {
-                return;
-            }
-            //绉婚櫎缂撳瓨
-            if (room.DeviceUIFilePathList.Contains(deviceUI.FileName) == false)
-            {
-                return;
-            }
-            room.DeviceUIFilePathList.Remove(deviceUI.FileName);
-
-            room.DeviceUIList.RemoveAll((obj) => obj.FileName == deviceUI.FileName);
-            room.Save();
-            //鏇存敼鑷姩澶囦唤
+            if (room == null)
+            {
+                return;
+            }
+            //绉婚櫎缂撳瓨
+            if (room.DeviceUIFilePathList.Contains(deviceUI.FileName) == false)
+            {
+                return;
+            }
+            room.DeviceUIFilePathList.Remove(deviceUI.FileName);
+
+            room.DeviceUIList.RemoveAll((obj) => obj.FileName == deviceUI.FileName);
+            room.Save();
+            //鏇存敼鑷姩澶囦唤
             HdlAutoBackupLogic.AddOrEditorFile(room.FileName);
         }
 
@@ -858,26 +858,26 @@
             return Common.LocalDevice.Current.GetDeviceUI(device);
         }
 
-        /// <summary>
-        /// 鑾峰彇褰撳墠鎴块棿涓嬬殑鍏ㄩ儴璁惧
-        /// </summary>
+        /// <summary>
+        /// 鑾峰彇褰撳墠鎴块棿涓嬬殑鍏ㄩ儴璁惧
+        /// </summary>
         /// <returns></returns>
-        public List<CommonDevice> GetRoomListDevice()
-        {
-            var listDevice = new List<CommonDevice>();
-            foreach (var device in this.DeviceUIList)
-            {
-                if (device == null || device.CommonDevice == null)
-                {
-                    continue;
-                }
-                listDevice.Add(device.CommonDevice);
-            }
-            if (listDevice.Count == 0)
-            {
-                return listDevice;
-            }
-            return Common.LocalDevice.Current.SortDevice(listDevice);
+        public List<CommonDevice> GetRoomListDevice()
+        {
+            var listDevice = new List<CommonDevice>();
+            foreach (var device in this.DeviceUIList)
+            {
+                if (device == null || device.CommonDevice == null)
+                {
+                    continue;
+                }
+                listDevice.Add(device.CommonDevice);
+            }
+            if (listDevice.Count == 0)
+            {
+                return listDevice;
+            }
+            return Common.LocalDevice.Current.SortDevice(listDevice);
         }
 
         /// <summary>
@@ -908,7 +908,7 @@
         /// <param name="room"></param>
         /// <param name="deviceType"></param>
         /// <returns></returns>
-        public static List<DeviceUI> GetDeviceUIs(Room room ,DeviceType deviceType)
+        public static List<DeviceUI> GetDeviceUIs(Room room, DeviceType deviceType)
         {
             List<DeviceUI> typeList = new List<DeviceUI> { };
             foreach (var deviceUI in room.DeviceUIList)
@@ -917,7 +917,7 @@
                 {
                     continue;
                 }
-                if(deviceUI.CommonDevice.Type!=deviceType)
+                if (deviceUI.CommonDevice.Type != deviceType)
                 {
                     continue;
                 }
@@ -960,78 +960,6 @@
             return sceneList;
         }
 
-        /// <summary>
-        /// 鑾峰彇褰撳墠鎴块棿涓嬬殑鍏ㄩ儴璁惧
-        /// </summary>
-        /// <returns></returns>
-        public List<CommonDevice> GetRoomListDevice()
-        {
-            var listDevice = new List<CommonDevice>();
-            foreach (var device in this.DeviceUIList)
-            {
-                if (device == null || device.CommonDevice == null)
-                {
-                    continue;
-                }
-                listDevice.Add(device.CommonDevice);
-            }
-            if (listDevice.Count == 0)
-            {
-                return listDevice;
-            }
-            return Common.LocalDevice.Current.SortDevice(listDevice);
-        }
-
-        /// <summary>
-        /// 鑾峰彇鎴块棿璁惧绫诲瀷
-        /// </summary>
-        /// <param name="room"></param>
-        /// <returns></returns>
-        public static List<DeviceType> GetdeviceTypes(Room room)
-        {
-            List<DeviceType> typeList = new List<DeviceType> { };
-            foreach (var deviceUI in room.DeviceUIList)
-            {
-                if (deviceUI == null || deviceUI.CommonDevice == null)
-                {
-                    continue;
-                }
-                if (!typeList.Contains(deviceUI.CommonDevice.Type))
-                {
-                    typeList.Add(deviceUI.CommonDevice.Type);
-                }
-            }
-            return typeList;
-        }
-
-        /// <summary>
-        /// 鑾峰彇璇ョ被鍨嬬殑璁惧
-        /// </summary>
-        /// <param name="room"></param>
-        /// <param name="deviceType"></param>
-        /// <returns></returns>
-        public static List<DeviceUI> GetDeviceUIs(Room room ,DeviceType deviceType)
-        {
-            List<DeviceUI> typeList = new List<DeviceUI> { };
-            foreach (var deviceUI in room.DeviceUIList)
-            {
-                if (deviceUI == null || deviceUI.CommonDevice == null)
-                {
-                    continue;
-                }
-                if(deviceUI.CommonDevice.Type!=deviceType)
-                {
-                    continue;
-                }
-                if (!typeList.Contains(deviceUI))
-                {
-                    typeList.Add(deviceUI);
-                }
-            }
-            return typeList;
-        }
-
-
         #endregion
 
         #region 鈼� 娣诲姞鍦烘櫙_________________________
@@ -1047,7 +975,7 @@
         public async System.Threading.Tasks.Task<int> AddScene(string sceneName, string sceneIconPath, List<ZigBee.Device.Scene.AddSceneMemberData> commons, int iconPathType = 0)
         {
             var scenes = GetSceneUIsByFloorId(FloorId);
-            if(scenes!=null && scenes.Count>0)
+            if (scenes != null && scenes.Count > 0)
             {
                 if (scenes.Find(s => s.Name == sceneName) != null)
                 {
@@ -1074,7 +1002,7 @@
                     ScenesId = getSceneIdData.NewScenesId,
                     TaskList = common.TaskList,
                     DelayTime = common.DelayTime,
-                    MemberNumber=common.MemberNumber,
+                    MemberNumber = common.MemberNumber,
                     ElseScenesId = common.ElseScenesId
                 };
                 //common.ScenesId = getSceneIdData.NewScenesId;
@@ -1106,7 +1034,7 @@
                     Id = getSceneIdData.NewScenesId,
                     IconPath = fullPath,
                     IconPathType = iconPathType,
-                    AddSceneMemberDataList= commons
+                    AddSceneMemberDataList = commons
                 };
                 SceneUIList.Add(sceneUI);
                 SceneUIFilePathList.Add(sceneUI.FileName);
@@ -1161,9 +1089,9 @@
         /// <param name="room"></param>
         /// <param name="filePath"></param>
         /// <returns></returns>
-        public bool IsCollectInRoom(Room room,string filePath)
+        public bool IsCollectInRoom(Room room, string filePath)
         {
-            if(room.IsLove)
+            if (room.IsLove)
             {
                 return true;
             }
@@ -1220,7 +1148,7 @@
                     TaskList = addCommon.TaskList,
                     DelayTime = addCommon.DelayTime,
                     ElseScenesId = addCommon.ElseScenesId,
-                    MemberNumber=addCommon.MemberNumber
+                    MemberNumber = addCommon.MemberNumber
                 };
                 //娣诲姞鏂版垚鍛� 杩斿洖缁撴灉
                 var addSceneMemberResponseAllData = await ZigBee.Device.Scene.AddSceneMemberAsync(addSceneMemberData);
@@ -1256,7 +1184,7 @@
         /// <param name="sceneUI">Scene user interface.</param>
         public void RemoveScene(SceneUI sceneUI)
         {
-            if(Global.IsExistsByHomeId(sceneUI.FileName)==false)
+            if (Global.IsExistsByHomeId(sceneUI.FileName) == false)
             {
                 return;
             }
@@ -1299,8 +1227,8 @@
         public List<SceneUI> GetSameFloorScenes(string floorId)
         {
             List<SceneUI> sceneUIs = new List<SceneUI> { };
-            var rooms= CurrentRoom.GetRoomsByFloorId(floorId);
-            foreach(var r in rooms)
+            var rooms = CurrentRoom.GetRoomsByFloorId(floorId);
+            foreach (var r in rooms)
             {
                 sceneUIs.AddRange(r.SceneUIList);
             }
@@ -1378,168 +1306,168 @@
             {
                 HdlAutoBackupLogic.AddOrEditorFile(FileName);
             }
-        }
-
+        }
+
         #endregion
-
-        #region 鈼� 妤煎眰鍜屾埧闂撮『搴忕浉鍏砡______________
-
-        /// <summary>
-        /// 鏍规嵁妤煎眰鐨勪富閿幏鍙栨帓搴忓悗鐨勬埧闂村垪琛�
-        /// </summary>
-        /// <param name="i_floorKeys">妤煎眰鐨勪富閿�</param>
-        /// <param name="getShard">鍒嗕韩鐨勬埧闂存槸鍚︿篃鑾峰彇</param>
-        /// <returns></returns>
-        public List<Room> GetFloorSortRoom(string i_floorKeys, bool getShard = true)
-        {
-            Dictionary<string, List<string>> dicAllSort = new Dictionary<string, List<string>>();
-            //璇诲彇鎴块棿椤哄簭
-            string fullName = UserCenterLogic.CombinePath(DirNameResourse.LocalMemoryDirectory, DirNameResourse.RoomSortFile);
-            var strData = UserCenterLogic.LoadFileContent(fullName);
-            if (strData != null)
-            {
-                dicAllSort = Newtonsoft.Json.JsonConvert.DeserializeObject<Dictionary<string, List<string>>>(strData);
-            }
-
-            var listRoomSort = new List<string>();
-            if (dicAllSort.ContainsKey(i_floorKeys) == true)
-            {
-                listRoomSort = dicAllSort[i_floorKeys];
-            }
-            else
-            {
-                dicAllSort[i_floorKeys] = listRoomSort;
-            }
-
-            var dicRoom = new Dictionary<string, Common.Room>();
-            foreach (var room in Common.Room.Lists)
-            {
-                if (room.FloorId != i_floorKeys || room.IsLove == true)
-                {
-                    //涓嶆槸鍚屼竴涓ゼ灞�
-                    continue;
-                }
-                if (listRoomSort.Contains(room.Id) == false)
-                {
-                    //鏂版坊鍔犵殑鎴块棿
-                    listRoomSort.Add(room.Id);
-                }
-                if (getShard == false && room.IsSharedRoom == true)
-                {
-                    //涓嶈鍒嗕韩鐨勬埧闂�
-                    continue;
-                }
-                dicRoom[room.Id] = room;
-            }
-
-            var listSortRoom = new List<Room>();
-            for (int i = 0; i < listRoomSort.Count; i++)
-            {
-                if (dicRoom.ContainsKey(listRoomSort[i]) == true)
-                {
-                    listSortRoom.Add(dicRoom[listRoomSort[i]]);
-                }
-            }
-
-            //淇濆瓨椤哄簭
-            UserCenterLogic.SaveFileContent(fullName, dicAllSort);
-            return listSortRoom;
-        }
-
-        /// <summary>
-        /// 淇濆瓨鎴块棿鐨勯『搴�
-        /// </summary>
-        /// <param name="i_floorKeys">妤煎眰涓婚敭</param>
-        /// <param name="listSort">鎴块棿椤哄簭(鎴块棿鐨勪富閿�)</param>
-        public void SaveRoomSort(string i_floorKeys, List<string> listSort)
-        {
-            Dictionary<string, List<string>> dicAllSort = new Dictionary<string, List<string>>();
-            //璇诲彇鎴块棿椤哄簭
-            string fullName = UserCenterLogic.CombinePath(DirNameResourse.LocalMemoryDirectory, DirNameResourse.RoomSortFile);
-            var strData = UserCenterLogic.LoadFileContent(fullName);
-            if (strData != null)
-            {
-                dicAllSort = Newtonsoft.Json.JsonConvert.DeserializeObject<Dictionary<string, List<string>>>(strData);
-            }
-
-            //淇濆瓨椤哄簭
-            dicAllSort[i_floorKeys] = listSort;
-            UserCenterLogic.SaveFileContent(fullName, dicAllSort);
-            dicAllSort.Clear();
-        }
-
-        /// <summary>
-        /// 鑾峰彇鎺掑簭鍚庣殑妤煎眰
-        /// </summary>
-        /// <returns></returns>
-        public Dictionary<string, string> GetFloorSortList()
-        {
-            //璇诲彇妤煎眰椤哄簭
-            var listFloorSort = new List<string>();
-            string fullName = UserCenterLogic.CombinePath(DirNameResourse.LocalMemoryDirectory, DirNameResourse.FloorSortFile);
-            var strData = UserCenterLogic.LoadFileContent(fullName);
-            if (strData != null)
-            {
-                listFloorSort = Newtonsoft.Json.JsonConvert.DeserializeObject<List<string>>(strData);
-            }
-            foreach (string keys in Common.Config.Instance.Home.FloorDics.Keys)
-            {
-                if (listFloorSort.Contains(keys) == false)
-                {
-                    //鏂版坊鍔犵殑妤煎眰
-                    listFloorSort.Add(keys);
-                }
-            }
-
-            var dic = new Dictionary<string, string>();
-            for (int i = 0; i < listFloorSort.Count; i++)
-            {
-                if (Config.Instance.Home.FloorDics.ContainsKey(listFloorSort[i]) == true)
-                {
-                    dic[listFloorSort[i]] = Config.Instance.Home.FloorDics[listFloorSort[i]];
-                }
-            }
-
-            //淇濆瓨椤哄簭
-            UserCenterLogic.SaveFileContent(fullName, listFloorSort);
-            return dic;
-        }
-
-        /// <summary>
-        /// 淇濆瓨妤煎眰鐨勯『搴�
-        /// </summary>
-        /// <param name="listSort">妤煎眰鐨勪富閿�</param>
-        public void SaveFloorSort(List<string> listSort)
-        {
-            string fullName = UserCenterLogic.CombinePath(DirNameResourse.LocalMemoryDirectory, DirNameResourse.FloorSortFile);
-            //淇濆瓨椤哄簭
-            UserCenterLogic.SaveFileContent(fullName, listSort);
-        }
-
-        #endregion
-
-        #region 鈼� 鍏嬮殕鎴块棿瀵硅薄_____________________
-
-        /// <summary>
-        /// 鍏嬮殕鎴块棿瀵硅薄
-        /// </summary>
-        /// <returns></returns>
-        public Room CloneRoomClass()
-        {
-            var newRoom = new Room();
-            //鍏嬮殕灞炴��
-            newRoom.Id = this.Id;
-            newRoom.FloorId = this.FloorId;
-            newRoom.TemperatrueDevice = this.TemperatrueDevice;
-            newRoom.HumidityDevice = this.HumidityDevice;
-            newRoom.Name = this.Name;
-            newRoom.BackgroundImage = this.BackgroundImage;
-            newRoom.BackgroundImageType = this.BackgroundImageType;
-
-            return newRoom;
-        }
-
+
+        #region 鈼� 妤煎眰鍜屾埧闂撮『搴忕浉鍏砡______________
+
+        /// <summary>
+        /// 鏍规嵁妤煎眰鐨勪富閿幏鍙栨帓搴忓悗鐨勬埧闂村垪琛�
+        /// </summary>
+        /// <param name="i_floorKeys">妤煎眰鐨勪富閿�</param>
+        /// <param name="getShard">鍒嗕韩鐨勬埧闂存槸鍚︿篃鑾峰彇</param>
+        /// <returns></returns>
+        public List<Room> GetFloorSortRoom(string i_floorKeys, bool getShard = true)
+        {
+            Dictionary<string, List<string>> dicAllSort = new Dictionary<string, List<string>>();
+            //璇诲彇鎴块棿椤哄簭
+            string fullName = UserCenterLogic.CombinePath(DirNameResourse.LocalMemoryDirectory, DirNameResourse.RoomSortFile);
+            var strData = UserCenterLogic.LoadFileContent(fullName);
+            if (strData != null)
+            {
+                dicAllSort = Newtonsoft.Json.JsonConvert.DeserializeObject<Dictionary<string, List<string>>>(strData);
+            }
+
+            var listRoomSort = new List<string>();
+            if (dicAllSort.ContainsKey(i_floorKeys) == true)
+            {
+                listRoomSort = dicAllSort[i_floorKeys];
+            }
+            else
+            {
+                dicAllSort[i_floorKeys] = listRoomSort;
+            }
+
+            var dicRoom = new Dictionary<string, Common.Room>();
+            foreach (var room in Common.Room.Lists)
+            {
+                if (room.FloorId != i_floorKeys || room.IsLove == true)
+                {
+                    //涓嶆槸鍚屼竴涓ゼ灞�
+                    continue;
+                }
+                if (listRoomSort.Contains(room.Id) == false)
+                {
+                    //鏂版坊鍔犵殑鎴块棿
+                    listRoomSort.Add(room.Id);
+                }
+                if (getShard == false && room.IsSharedRoom == true)
+                {
+                    //涓嶈鍒嗕韩鐨勬埧闂�
+                    continue;
+                }
+                dicRoom[room.Id] = room;
+            }
+
+            var listSortRoom = new List<Room>();
+            for (int i = 0; i < listRoomSort.Count; i++)
+            {
+                if (dicRoom.ContainsKey(listRoomSort[i]) == true)
+                {
+                    listSortRoom.Add(dicRoom[listRoomSort[i]]);
+                }
+            }
+
+            //淇濆瓨椤哄簭
+            UserCenterLogic.SaveFileContent(fullName, dicAllSort);
+            return listSortRoom;
+        }
+
+        /// <summary>
+        /// 淇濆瓨鎴块棿鐨勯『搴�
+        /// </summary>
+        /// <param name="i_floorKeys">妤煎眰涓婚敭</param>
+        /// <param name="listSort">鎴块棿椤哄簭(鎴块棿鐨勪富閿�)</param>
+        public void SaveRoomSort(string i_floorKeys, List<string> listSort)
+        {
+            Dictionary<string, List<string>> dicAllSort = new Dictionary<string, List<string>>();
+            //璇诲彇鎴块棿椤哄簭
+            string fullName = UserCenterLogic.CombinePath(DirNameResourse.LocalMemoryDirectory, DirNameResourse.RoomSortFile);
+            var strData = UserCenterLogic.LoadFileContent(fullName);
+            if (strData != null)
+            {
+                dicAllSort = Newtonsoft.Json.JsonConvert.DeserializeObject<Dictionary<string, List<string>>>(strData);
+            }
+
+            //淇濆瓨椤哄簭
+            dicAllSort[i_floorKeys] = listSort;
+            UserCenterLogic.SaveFileContent(fullName, dicAllSort);
+            dicAllSort.Clear();
+        }
+
+        /// <summary>
+        /// 鑾峰彇鎺掑簭鍚庣殑妤煎眰
+        /// </summary>
+        /// <returns></returns>
+        public Dictionary<string, string> GetFloorSortList()
+        {
+            //璇诲彇妤煎眰椤哄簭
+            var listFloorSort = new List<string>();
+            string fullName = UserCenterLogic.CombinePath(DirNameResourse.LocalMemoryDirectory, DirNameResourse.FloorSortFile);
+            var strData = UserCenterLogic.LoadFileContent(fullName);
+            if (strData != null)
+            {
+                listFloorSort = Newtonsoft.Json.JsonConvert.DeserializeObject<List<string>>(strData);
+            }
+            foreach (string keys in Common.Config.Instance.Home.FloorDics.Keys)
+            {
+                if (listFloorSort.Contains(keys) == false)
+                {
+                    //鏂版坊鍔犵殑妤煎眰
+                    listFloorSort.Add(keys);
+                }
+            }
+
+            var dic = new Dictionary<string, string>();
+            for (int i = 0; i < listFloorSort.Count; i++)
+            {
+                if (Config.Instance.Home.FloorDics.ContainsKey(listFloorSort[i]) == true)
+                {
+                    dic[listFloorSort[i]] = Config.Instance.Home.FloorDics[listFloorSort[i]];
+                }
+            }
+
+            //淇濆瓨椤哄簭
+            UserCenterLogic.SaveFileContent(fullName, listFloorSort);
+            return dic;
+        }
+
+        /// <summary>
+        /// 淇濆瓨妤煎眰鐨勯『搴�
+        /// </summary>
+        /// <param name="listSort">妤煎眰鐨勪富閿�</param>
+        public void SaveFloorSort(List<string> listSort)
+        {
+            string fullName = UserCenterLogic.CombinePath(DirNameResourse.LocalMemoryDirectory, DirNameResourse.FloorSortFile);
+            //淇濆瓨椤哄簭
+            UserCenterLogic.SaveFileContent(fullName, listSort);
+        }
+
+        #endregion
+
+        #region 鈼� 鍏嬮殕鎴块棿瀵硅薄_____________________
+
+        /// <summary>
+        /// 鍏嬮殕鎴块棿瀵硅薄
+        /// </summary>
+        /// <returns></returns>
+        public Room CloneRoomClass()
+        {
+            var newRoom = new Room();
+            //鍏嬮殕灞炴��
+            newRoom.Id = this.Id;
+            newRoom.FloorId = this.FloorId;
+            newRoom.TemperatrueDevice = this.TemperatrueDevice;
+            newRoom.HumidityDevice = this.HumidityDevice;
+            newRoom.Name = this.Name;
+            newRoom.BackgroundImage = this.BackgroundImage;
+            newRoom.BackgroundImageType = this.BackgroundImageType;
+
+            return newRoom;
+        }
+
         #endregion
 
     }
-}
+}
\ No newline at end of file

--
Gitblit v1.8.0