From 1f4cec0e3b571e7541f0c7f3a5ea302ed586d9fb Mon Sep 17 00:00:00 2001
From: WJC <wjc@hdlchina.com.cn>
Date: 星期四, 24 十月 2019 16:47:06 +0800
Subject: [PATCH] 2019-10-24-5

---
 ZigbeeApp/Shared/Common/Room.cs | 2542 ++++++++++++++++++++++++++++++----------------------------
 1 files changed, 1,312 insertions(+), 1,230 deletions(-)

diff --git a/ZigbeeApp/Shared/Common/Room.cs b/ZigbeeApp/Shared/Common/Room.cs
old mode 100644
new mode 100755
index c168e50..363128b
--- a/ZigbeeApp/Shared/Common/Room.cs
+++ b/ZigbeeApp/Shared/Common/Room.cs
@@ -7,1335 +7,1417 @@
 
 namespace Shared.Common
 {
-	/// <summary>
-	/// 鎴块棿瀵硅薄
-	/// </summary>
-	[System.Serializable]
-	public class Room
-	{
-		#region 鈼� 鍙橀噺____________________________
+    /// <summary>
+    /// 鎴块棿瀵硅薄
+    /// </summary>
+    [System.Serializable]
+    public class Room
+    {
+        #region 鈼� 鍙橀噺____________________________
 
-		/// <summary>
-		/// 鎴块棿鏂囦欢
-		/// </summary>
-		/// <value>The name of the file.</value>
-		[Newtonsoft.Json.JsonIgnore]
-		public string FileName
-		{
-			get
-			{
-				return $"Room_{Id}.json";
-			}
-		}
-		/// <summary>
-		/// 鎴块棿id--浣跨敤guid
-		/// Guid.NewGuid().ToString()
-		/// </summary>
-		public string Id = Guid.NewGuid().ToString();
-		/// <summary>
-		/// 妤煎眰Id
-		/// 鏂板鏃朵娇鐢℅uid
-		/// </summary>
-		public string FloorId = "Floor1";
-		/// <summary>
-		/// 妤煎眰鍚嶇О
-		/// </summary>
-		public string FloorName
-		{
-			get
-			{
-				return GetFloorNameById(FloorId);
-			}
-		}
-		/// <summary>
-		/// 鎴块棿鍚�
-		/// </summary>
-		public string Name = string.Empty;
+        /// <summary>
+        /// 鎴块棿鏂囦欢
+        /// </summary>
+        /// <value>The name of the file.</value>
+        [Newtonsoft.Json.JsonIgnore]
+        public string FileName
+        {
+            get
+            {
+                return $"Room_{Id}.json";
+            }
+        }
+        /// <summary>
+        /// 鎴块棿id--浣跨敤guid
+        /// Guid.NewGuid().ToString()
+        /// </summary>
+        public string Id = Guid.NewGuid().ToString();
+        /// <summary>
+        /// 妤煎眰Id
+        /// 鏂板鏃朵娇鐢℅uid
+        /// </summary>
+        public string FloorId = string.Empty;
+        /// <summary>
+        /// 妤煎眰鍚嶇О
+        /// </summary>
+        public string FloorName
+        {
+            get
+            {
+               return Config.Instance.Home.GetFloorNameById(FloorId);
+            }
+        }
+        /// <summary>
+        /// 鎴块棿鍚�
+        /// </summary>
+        public string Name = string.Empty;
 
-		/// <summary>
-		/// 鎴块棿鑳屾櫙鍥�
-		/// </summary>
-		public string BackgroundImage = string.Empty;
+        /// <summary>
+        /// 鎴块棿鑳屾櫙鍥�
+        /// </summary>
+        public string BackgroundImage = string.Empty;
 
-		/// <summary>
-		/// 鍥剧墖鏉ユ簮 0--鏈湴鍥惧簱 1--鎷嶇収 2--绯荤粺鍥惧簱
-		/// </summary>
-		public int BackgroundImageType = 0;
+        /// <summary>
+        /// 鍥剧墖鏉ユ簮 0--鏈湴鍥惧簱 1--鎷嶇収 2--绯荤粺鍥惧簱
+        /// </summary>
+        public int BackgroundImageType = 0;
 
-		/// <summary>
-		/// 妤煎眰--澶囩敤
-		/// </summary>
-		public Dictionary<string, string> FloorList = new Dictionary<string, string> { };
+        /// <summary>
+        /// 妤煎眰--澶囩敤
+        /// </summary>
+        public Dictionary<string, string> FloorList = new Dictionary<string, string> { };
 
-		/// <summary>
-		/// 娓╁害浼犳劅鍣�(璁惧涓婚敭)
-		/// </summary>
-		public string TemperatrueDevice = string.Empty;
-		/// <summary>
-		/// 婀垮害浼犳劅鍣�(璁惧涓婚敭)
-		/// </summary>
-		public string HumidityDevice = string.Empty;
+        /// <summary>
+        /// 娓╁害浼犳劅鍣�(璁惧涓婚敭)
+        /// </summary>
+        public string TemperatrueDevice = string.Empty;
+        /// <summary>
+        /// 婀垮害浼犳劅鍣�(璁惧涓婚敭)
+        /// </summary>
+        public string HumidityDevice = string.Empty;
 
-		/// <summary>
-		/// 褰撳墠閫夋嫨鐨勬埧闂�
-		/// </summary>
-		public static Room CurrentRoom;
+        /// <summary>
+        /// 褰撳墠閫夋嫨鐨勬埧闂�
+        /// </summary>
+        public static Room CurrentRoom;
 
-		/// <summary>
-		/// 鎴块棿閲屾墍鏈夌殑璁惧鍒楄〃
-		/// </summary>
-		[Newtonsoft.Json.JsonIgnore]
-		public List<DeviceUI> DeviceUIList = new List<DeviceUI> { };
-		/// <summary>
-		///璁惧鏂囦欢璺緞鍒楄〃
-		/// </summary>
-		public readonly List<string> DeviceUIFilePathList = new List<string>();
+        /// <summary>
+        /// 鎴块棿閲屾墍鏈夌殑璁惧鍒楄〃
+        /// </summary>
+        [Newtonsoft.Json.JsonIgnore]
+        public List<DeviceUI> DeviceUIList = new List<DeviceUI> { };
+        /// <summary>
+        ///璁惧鏂囦欢璺緞鍒楄〃
+        /// </summary>
+        public readonly List<string> DeviceUIFilePathList = new List<string>();
 
-		/// <summary>
-		/// 鍠滅埍鎴块棿id
-		/// </summary>
-		public const string LoveRoomId = "Favorite";
+        /// <summary>
+        /// 鍠滅埍鎴块棿id
+        /// </summary>
+        public const string LoveRoomId= "Favorite";
 
-		/// <summary>
-		/// 鏄惁鏄粯璁ゅ枩鐖辨埧闂�
-		/// </summary>
-		/// <value><c>true</c> if is love; otherwise, <c>false</c>.</value>
-		[Newtonsoft.Json.JsonIgnore]
-		public bool IsLove
-		{
-			get
-			{
-				return Id == LoveRoomId;
-			}
-		}
+        /// <summary>
+        /// 鏄惁鏄粯璁ゅ枩鐖辨埧闂�
+        /// </summary>
+        /// <value><c>true</c> if is love; otherwise, <c>false</c>.</value>
+        [Newtonsoft.Json.JsonIgnore]
+        public bool IsLove
+        {
+            get
+            {
+                return Id == LoveRoomId;
+            }
+        }
 
-		/// <summary>
-		/// 鏄惁鏄垎浜繃鏉ョ殑鎴块棿
-		/// 娉細鍒嗕韩杩囨潵鐨勬埧闂翠笉鑳藉垹闄わ紝涓嶈兘缂栬緫璇ユ埧闂达紝涓嶈兘瀵硅澶囷紙鍔熻兘锛夈�佸満鏅繘琛屽鍒犳敼
-		/// </summary>
-		public bool IsSharedRoom = false;
+        /// <summary>
+        /// 鏄惁鏄垎浜繃鏉ョ殑鎴块棿
+        /// 娉細鍒嗕韩杩囨潵鐨勬埧闂翠笉鑳藉垹闄わ紝涓嶈兘缂栬緫璇ユ埧闂达紝涓嶈兘瀵硅澶囷紙鍔熻兘锛夈�佸満鏅繘琛屽鍒犳敼
+        /// </summary>
+        public bool IsSharedRoom = false;
 
-		/// <summary>
-		/// 鏄惁鍙互鍒锋柊鎴块棿鏁版嵁浜�
-		/// 闇�瑕佺瓑鍒濆鍖栨湰鍦拌澶囨暟鎹悗鍦ㄥ彲浠ュ垵濮嬪寲鎴块棿鏁版嵁
-		/// </summary>
-		public static bool CanInitAllRoom;
+        /// <summary>
+        /// 鏄惁鍙互鍒锋柊鎴块棿鏁版嵁浜�
+        /// 闇�瑕佺瓑鍒濆鍖栨湰鍦拌澶囨暟鎹悗鍦ㄥ彲浠ュ垵濮嬪寲鎴块棿鏁版嵁
+        /// </summary>
+        public static bool CanInitAllRoom;
 
-		/// <summary>
-		/// 鑾峰彇鍠滅埍鎴块棿鐨勬墍鏈夎澶囪矾寰�
-		/// </summary>
-		/// <value>The love room device list.</value>
-		[Newtonsoft.Json.JsonIgnore]
-		public static List<string> LoveRoomDeviceUIFilePathList
-		{
-			get
-			{
-				if (Lists.Count == 0)
-				{
-					return new List<string> { };
-				}
-				return GetLoveRoom().DeviceUIFilePathList;
-			}
-		}
+        /// <summary>
+        /// 鑾峰彇鍠滅埍鎴块棿鐨勬墍鏈夎澶囪矾寰�
+        /// </summary>
+        /// <value>The love room device list.</value>
+        [Newtonsoft.Json.JsonIgnore]
+        public static List<string> LoveRoomDeviceUIFilePathList
+        {
+            get
+            {
+                if (Lists.Count == 0)
+                {
+                    return new List<string> { };
+                }
+                return CurrentRoom.GetLoveRoom().DeviceUIFilePathList;
+            }
+        }
 
-		/// <summary>
-		/// 鎵�鏈夋埧闂寸殑鎵�鏈夎澶囩被鍨�
-		/// 鍏堣皟鐢� GetAllRoomDeviceTypeList()
-		/// </summary>
-		/// <value>All room device type list.</value>
-		[Newtonsoft.Json.JsonIgnore]
-		public static List<DeviceType> AllRoomDeviceTypeList = new List<DeviceType> { };
+        /// <summary>
+        /// 鎵�鏈夋埧闂寸殑鎵�鏈夎澶囩被鍨�
+        /// 鍏堣皟鐢� GetAllRoomDeviceTypeList()
+        /// </summary>
+        /// <value>All room device type list.</value>
+        [Newtonsoft.Json.JsonIgnore]
+        public static List<DeviceType> AllRoomDeviceTypeList = new List<DeviceType> { };
 
-		/// <summary>
-		/// 鑾峰彇鎵�鏈夋埧闂寸殑鎵�鏈夊満鏅�
-		/// </summary>
-		/// <value>All room scene UIL ist.</value>
-		[Newtonsoft.Json.JsonIgnore]
-		public static List<SceneUI> AllRoomSceneUIList
-		{
-			get
-			{
-				var sceneList = new List<SceneUI> { };
-				foreach (var r in Shared.Common.Room.Lists)
-				{
-					if (r.SceneUIList.Count == 0)
-					{
-						continue;
-					}
-					foreach (var sceneUI in r.SceneUIList)
-					{
-						if (sceneUI == null)
-						{
-							continue;
-						}
-						sceneList.Add(sceneUI);
-					}
-				}
-				return sceneList;
-			}
-		}
-		/// <summary>
-		/// 鍦烘櫙鍒楄〃---涓嶅啀搴忓垪鍖�
-		/// </summary>
-		[Newtonsoft.Json.JsonIgnore]
-		public List<SceneUI> SceneUIList = new List<SceneUI> { };
-		/// <summary>
-		///鍦烘櫙鏂囦欢鍒楄〃
-		/// </summary>
-		public readonly List<string> SceneUIFilePathList = new List<string>();
+        /// <summary>
+        /// 鑾峰彇鎵�鏈夋埧闂寸殑鎵�鏈夊満鏅�
+        /// </summary>
+        /// <value>All room scene UIL ist.</value>
+        [Newtonsoft.Json.JsonIgnore]
+        public static List<SceneUI> AllRoomSceneUIList
+        {
+            get
+            {
+                var sceneList = new List<SceneUI> { };
+                foreach (var r in Shared.Common.Room.Lists)
+                {
+                    if (r.SceneUIList.Count == 0)
+                    {
+                        continue;
+                    }
+                    foreach (var sceneUI in r.SceneUIList)
+                    {
+                        if (sceneUI == null)
+                        {
+                            continue;
+                        }
+                        sceneList.Add(sceneUI);
+                    }
+                }
+                return sceneList;
+            }
+        }
+        /// <summary>
+        /// 鍦烘櫙鍒楄〃---涓嶅啀搴忓垪鍖�
+        /// </summary>
+        [Newtonsoft.Json.JsonIgnore]
+        public List<SceneUI> SceneUIList = new List<SceneUI> { };
+        /// <summary>
+        ///鍦烘櫙鏂囦欢鍒楄〃
+        /// </summary>
+        public readonly List<string> SceneUIFilePathList = new List<string>();
 
-		/// <summary>
-		/// 鎵�鏈夌殑鎴块棿淇℃伅
-		/// </summary>
-		public static List<Room> Lists = new List<Room>();
+        /// <summary>
+        /// 鎵�鏈夌殑鎴块棿淇℃伅
+        /// </summary>
+        public static List<Room> Lists = new List<Room>();
 
-		/// <summary>
-		/// 鑾峰彇鎵�鏈夋埧闂寸殑鎵�鏈夎澶�
-		/// 璇峰厛璋冪敤 GetAllRoomDeviceUIList()鏂规硶
-		/// </summary>
-		/// <value>All room device UIL ist.</value>
-		[Newtonsoft.Json.JsonIgnore]
-		public static List<DeviceUI> AllRoomDeviceUIList = new List<DeviceUI> { };
+        /// <summary>
+        /// 鑾峰彇鎵�鏈夋埧闂寸殑鎵�鏈夎澶�
+        /// 璇峰厛璋冪敤 GetAllRoomDeviceUIList()鏂规硶
+        /// </summary>
+        /// <value>All room device UIL ist.</value>
+        [Newtonsoft.Json.JsonIgnore]
+        public static List<DeviceUI> AllRoomDeviceUIList = new List<DeviceUI> { };
 
-		#endregion
+        #endregion
 
-		#region 鈼� 鏋勯�犳柟娉昣_______________________
+        #region 鈼� 鏋勯�犳柟娉昣_______________________
 
-		/// <summary>
-		/// 鏋勯�犳柟娉�
-		/// </summary>
-		static Room()
-		{
-			InitAllRoom();
-		}
+        /// <summary>
+        /// 鏋勯�犳柟娉�
+        /// </summary>
+        static Room()
+        {
+            InitAllRoom();
+        }
 
-		#endregion
+        #endregion
 
-		#region 鈼� 鍒濆鍖朹_________________________
+        #region 鈼� 鍒濆鍖朹_________________________
 
-		/// <summary>
-		/// 鍒濆鍖栨埧闂翠俊鎭�
-		/// 浠庢枃浠朵腑鍏ㄩ儴璇诲彇鎵�鏈夌殑鎴块棿鏁版嵁鍒板唴瀛�
-		/// </summary>
-		public static void InitAllRoom()
-		{
-			if (CanInitAllRoom == false)
-			{
-				return;
-			}
-			Lists.Clear();
-			if (Config.Instance.Home.RoomFilePathList.Contains("Room_Favorite.json") == false)
-			{
-				//榛樿娣诲姞鍠滅埍鐨勬埧闂�--绂佹淇敼鎴块棿鍚�
-				var love = new Room { Name = Language.StringByID(R.MyInternationalizationString.Favorite), BackgroundImage = "Room/r0.png", Id = LoveRoomId };
-				love.Save(true);
-				//娣诲姞鍒癶ouse 鎴块棿璺緞鍒楄〃
-				var currentHome = Config.Instance.Home;
-				currentHome.RoomFilePathList.Insert(0, love.FileName);
-				currentHome.Save();
-			}
-			foreach (var roomFilePath in Config.Instance.Home.RoomFilePathList)
-			{
-				var room = GetRoomByFilePath(roomFilePath);
+        /// <summary>
+        /// 鍒濆鍖栨埧闂翠俊鎭�
+        /// 浠庢枃浠朵腑鍏ㄩ儴璇诲彇鎵�鏈夌殑鎴块棿鏁版嵁鍒板唴瀛�
+        /// </summary>
+        public static void InitAllRoom()
+        {
+            if (CanInitAllRoom == false)
+            {
+                return;
+            }
+            Lists.Clear();
+            if (Config.Instance.Home.RoomFilePathList.Contains("Room_Favorite.json") == false)
+            {
+                //榛樿娣诲姞鍠滅埍鐨勬埧闂�--绂佹淇敼鎴块棿鍚�
+                var love = new Room { Name = Language.StringByID(R.MyInternationalizationString.Favorite), BackgroundImage = "Room/r0.png", Id = LoveRoomId };
+                love.Save(true);
+                //娣诲姞鍒癶ouse 鎴块棿璺緞鍒楄〃
+                var currentHome = Config.Instance.Home;
+                currentHome.RoomFilePathList.Insert(0, love.FileName);
+                currentHome.Save();
+            }
+            foreach (var roomFilePath in Config.Instance.Home.RoomFilePathList)
+            {
+                var room = GetRoomByFilePath(roomFilePath);
 
-				if (null != room)
-				{
-					if (room.IsSharedRoom)
-					{
-						room.Name = $"({Language.StringByID(R.MyInternationalizationString.Shared)}){room.Name}";
-					}
-					Lists.Add(room);
-				}
-			}
-		}
+                if (null != room)
+                {
+                    if (room.IsSharedRoom)
+                    {
+                        room.Name = $"({Language.StringByID(R.MyInternationalizationString.Shared)}){room.Name}";
+                    }
+                    Lists.Add(room);
+                }
+            }
+        }
 
-		/// <summary>
-		/// 浠庢湰鍦伴噸鏂板姞杞藉叏閮ㄧ殑鎴块棿
-		/// </summary>
-		public static void RefreshAllRoomByLocation()
-		{
-			Lists.Clear();
-			var homeTemp = Config.Instance.Home;
-			homeTemp.RoomFilePathList.Clear();
+        /// <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();
+        }
 
-			var listFile = Global.FileListByHomeId();
+        #endregion
 
-			//鎴戠殑鍠滅埍鐨勬埧闂村繀椤昏鍦ㄧ0浣嶆墠琛�
-			string fRoom = "Room_Favorite.json";
-			if (listFile.Contains(fRoom) == true)
-			{
-				listFile.Remove(fRoom);
-				homeTemp.AddRoomListFilePath(fRoom);
-			}
+        #region 鈼� 娣诲姞鎴块棿_________________________
 
-			foreach (string fileName in listFile)
-			{
-				if (fileName.StartsWith("Room_"))
-				{
-					homeTemp.AddRoomListFilePath(fileName);
-				}
-			}
-			homeTemp.Save(false);
-			CanInitAllRoom = true;
-			InitAllRoom();
-		}
+        /// <summary>
+        /// 澧炲姞鎴块棿
+        /// </summary>
+        /// <returns><c>true</c>, if room was added, <c>false</c> otherwise.</returns>
+        /// <param name="room">Room.</param>
+        public bool AddRoom(Room room)
+        {
+            if (string.IsNullOrEmpty(room.FileName) || Global.IsExistsByHomeId(room.FileName))
+            {
+                return false;
+            }
+            if (Config.Instance.Home.RoomFilePathList.Contains(room.FileName))
+            {
+                return false;
+            }
+            Lists.Add(room);
+            var r = Config.Instance.Home.AddRoomListFilePath(room.FileName);
+            if (r == false)
+            {
+                return false;
+            }
+            Save();
+            HdlAutoBackupLogic.AddOrEditorFile(room.FileName);
+            return true;
+        }
 
-		#endregion
+        #endregion
 
-		#region 鈼� 娣诲姞鎴块棿_________________________
+        #region 鈼� 鍒犻櫎鎴块棿_________________________
 
-		/// <summary>
-		/// 澧炲姞鎴块棿
-		/// </summary>
-		/// <returns><c>true</c>, if room was added, <c>false</c> otherwise.</returns>
-		/// <param name="room">Room.</param>
-		public bool AddRoom(Room room)
-		{
-			if (string.IsNullOrEmpty(room.FileName) || Global.IsExistsByHomeId(room.FileName))
-			{
-				return false;
-			}
-			if (Config.Instance.Home.RoomFilePathList.Contains(room.FileName))
-			{
-				return false;
-			}
-			Lists.Add(room);
-			var r = Config.Instance.Home.AddRoomListFilePath(room.FileName);
-			if (r == false)
-			{
-				return false;
-			}
-			Save();
-			HdlAutoBackupLogic.AddOrEditorFile(room.FileName);
-			return true;
-		}
+        /// <summary>
+        /// 鍒犻櫎鎴块棿
+        /// </summary>
+        public bool Remove(string roomFilePath)
+        {
+            var room = GetRoomByFilePath(roomFilePath);
+            if (null == room)
+            {
+                return false;
+            }
+            //鍒犻櫎鏉ヨ嚜鎷嶇収鎴栬�呯郴缁熷浘搴撶殑鎴块棿鑳屾櫙鍥剧墖
+            if (room.BackgroundImageType == 1 || room.BackgroundImageType == 2)
+            {
+                DeleteBackGroundIamageFilebyHomeId(room.BackgroundImage);
+            }
+            if (Global.IsExistsByHomeId(roomFilePath) == false)
+            {
+                return false;
+            }
+            Config.Instance.Home.RemoveRoomListFilePath(roomFilePath);
+            //鍒犻櫎鏂囦欢
+            Global.DeleteFilebyHomeId(roomFilePath);
+            Lists.Remove(room);
+            HdlAutoBackupLogic.DeleteFile(roomFilePath);
+            return true;
+        }
 
-		#endregion
+        #endregion
 
-		#region 鈼� 鍒犻櫎鎴块棿_________________________
+        #region 鈼� 鑾峰彇鎴块棿________________________
 
-		/// <summary>
-		/// 鍒犻櫎鎴块棿
-		/// </summary>
-		public bool Remove(string roomFilePath)
-		{
-			var room = GetRoomByFilePath(roomFilePath);
-			if (null == room)
-			{
-				return false;
-			}
-			//鍒犻櫎鏉ヨ嚜鎷嶇収鎴栬�呯郴缁熷浘搴撶殑鎴块棿鑳屾櫙鍥剧墖
-			if (room.BackgroundImageType == 1 || room.BackgroundImageType == 2)
-			{
-				DeleteBackGroundIamageFilebyHomeId(room.BackgroundImage);
-			}
-			if (Global.IsExistsByHomeId(roomFilePath) == false)
-			{
-				return false;
-			}
-			Config.Instance.Home.RemoveRoomListFilePath(roomFilePath);
-			//鍒犻櫎鏂囦欢
-			Global.DeleteFilebyHomeId(roomFilePath);
-			Lists.Remove(room);
-			HdlAutoBackupLogic.DeleteFile(roomFilePath);
-			return true;
-		}
+        /// <summary>
+        /// 鑾峰彇鍠滅埍鎴块棿
+        /// </summary>
+        /// <returns></returns>
+        public Room GetLoveRoom()
+        {
+            return CurrentRoom.GetRoomById(LoveRoomId);
+        }
 
-		#endregion
+        /// <summary>
+        /// 閫氳繃璺緞鑾峰彇鎴块棿
+        /// </summary>
+        /// <returns>The room by file path.</returns>
+        /// <param name="roomFilePath">Room file path.</param>
+        public static Room GetRoomByFilePath(string roomFilePath)
+        {
+            try
+            {
+                var roomFile = Global.ReadFileByHomeId(roomFilePath);
+                var nowRoom = Newtonsoft.Json.JsonConvert.DeserializeObject<Room>(System.Text.Encoding.UTF8.GetString(roomFile));
 
-		#region 鈼� 鑾峰彇鎴块棿________________________
+                if (null == nowRoom)
+                {
+                    System.Console.WriteLine("鎴块棿鏂囦欢璺緞涓嶅锛屾枃浠惰矾寰勪负锛�" + roomFilePath);
+                    return null;
+                }
 
-		/// <summary>
-		/// 鑾峰彇鍠滅埍鎴块棿
-		/// </summary>
-		/// <returns></returns>
-		public static Room GetLoveRoom()
-		{
-			return CurrentRoom.GetRoomById(LoveRoomId);
-		}
+                var beforeRoom = Lists.Find((obj) => obj.Id == nowRoom.Id);
+                if (beforeRoom != null)
+                {
+                    var tempDeviceUIList = new List<DeviceUI>();
+                    tempDeviceUIList.AddRange(beforeRoom.DeviceUIList);
+                    var tempSceneUIList = new List<SceneUI>();
+                    tempSceneUIList.AddRange(beforeRoom.SceneUIList);
+                    //璁惧锛坉eviceUI锛�
+                    beforeRoom.DeviceUIList.Clear();
+                    foreach (var deviceFilePath in beforeRoom.DeviceUIFilePathList)
+                    {
+                        beforeRoom.DeviceUIList.Add(Common.LocalDevice.Current.GetDeviceUI(deviceFilePath));
+                    }
+                    //鍦烘櫙(SceneUI)
+                    beforeRoom.SceneUIList.Clear();
+                    foreach (var sceneFilePath in beforeRoom.SceneUIFilePathList)
+                    {
+                        var jsonInfo = Encoding.UTF8.GetString(Global.ReadFileByHomeId(sceneFilePath));
+                        var tempSceneUI = Newtonsoft.Json.JsonConvert.DeserializeObject<SceneUI>(jsonInfo);
+                        if (tempSceneUI != null)
+                        {
+                            var scene = tempSceneUIList.Find((obj) => obj.FileName == tempSceneUI.FileName);
+                            if (scene != null)
+                            {
+                                beforeRoom.SceneUIList.Add(scene);
+                            }
+                            else
+                            {
+                                beforeRoom.AddScene(scene);
+                            }
+                        }
+                    }
 
-		/// <summary>
-		/// 閫氳繃璺緞鑾峰彇鎴块棿
-		/// </summary>
-		/// <returns>The room by file path.</returns>
-		/// <param name="roomFilePath">Room file path.</param>
-		public static Room GetRoomByFilePath(string roomFilePath)
-		{
-			try
-			{
-				var roomFile = Global.ReadFileByHomeId(roomFilePath);
-				var nowRoom = Newtonsoft.Json.JsonConvert.DeserializeObject<Room>(System.Text.Encoding.UTF8.GetString(roomFile));
+                    return beforeRoom;
+                }
 
-				if (null == nowRoom)
-				{
-					System.Console.WriteLine("鎴块棿鏂囦欢璺緞涓嶅锛屾枃浠惰矾寰勪负锛�" + roomFilePath);
-					return null;
-				}
+                //璁惧锛坉eviceUI锛�
+                nowRoom.DeviceUIList.Clear();
+                foreach (var deviceFilePath in nowRoom.DeviceUIFilePathList)
+                {
+                    var tempCommon = LocalDevice.Current.GetDeviceUI(deviceFilePath);
+                    if (tempCommon == null || tempCommon.CommonDevice == null)
+                    {
+                        continue;
+                    }
+                    nowRoom.DeviceUIList.Add(tempCommon);
+                }
+                //鍦烘櫙(SceneUI)
+                nowRoom.SceneUIList.Clear();
+                foreach (var sceneUIFilePath in nowRoom.SceneUIFilePathList)
+                {
+                    var jsonInfo = Encoding.UTF8.GetString(Global.ReadFileByHomeId(sceneUIFilePath));
+                    var tempScene = Newtonsoft.Json.JsonConvert.DeserializeObject<SceneUI>(jsonInfo);
+                    if (tempScene == null)
+                    {
+                        continue;
+                    }
+                    nowRoom.SceneUIList.Add(tempScene);
+                }
+                return nowRoom;
+            }
+            catch(Exception ex)
+            {
+                return null;
+            }
+        }
 
-				var beforeRoom = Lists.Find((obj) => obj.Id == nowRoom.Id);
-				if (beforeRoom != null)
-				{
-					var tempDeviceUIList = new List<DeviceUI>();
-					tempDeviceUIList.AddRange(beforeRoom.DeviceUIList);
-					var tempSceneUIList = new List<SceneUI>();
-					tempSceneUIList.AddRange(beforeRoom.SceneUIList);
-					//璁惧锛坉eviceUI锛�
-					beforeRoom.DeviceUIList.Clear();
-					foreach (var deviceFilePath in beforeRoom.DeviceUIFilePathList)
-					{
-						beforeRoom.DeviceUIList.Add(Common.LocalDevice.Current.GetDeviceUI(deviceFilePath));
-					}
-					//鍦烘櫙(SceneUI)
-					beforeRoom.SceneUIList.Clear();
-					foreach (var sceneFilePath in beforeRoom.SceneUIFilePathList)
-					{
-						var jsonInfo = Encoding.UTF8.GetString(Global.ReadFileByHomeId(sceneFilePath));
-						var tempSceneUI = Newtonsoft.Json.JsonConvert.DeserializeObject<SceneUI>(jsonInfo);
-						if (tempSceneUI != null)
-						{
-							var scene = tempSceneUIList.Find((obj) => obj.FileName == tempSceneUI.FileName);
-							if (scene != null)
-							{
-								beforeRoom.SceneUIList.Add(scene);
-							}
-							else
-							{
-								beforeRoom.AddScene(scene);
-							}
-						}
-					}
+        /// <summary>
+        /// 鏍规嵁鎴块棿Id锛岃幏鍙栨埧闂村璞�
+        /// </summary>
+        /// <returns>The room by name.</returns>
+        /// <param name="roomId">鎴块棿ID</param>
+        public Room GetRoomById(string roomId)
+        {
+            return Lists.Find((obj) => obj.Id == roomId);
+        }
 
-					return beforeRoom;
-				}
+        /// <summary>
+        /// 鏍规嵁鎴块棿鍚嶅瓧锛岃幏鍙栨埧闂村璞�
+        /// </summary>
+        /// <returns>The room by name.</returns>
+        /// <param name="roomName">鎴块棿鍚�</param>
+        public Room GetRoomByName(string roomName)
+        {
+            return Lists.Find((obj) => obj.Name == roomName);
+        }
 
-				//璁惧锛坉eviceUI锛�
-				nowRoom.DeviceUIList.Clear();
-				foreach (var deviceFilePath in nowRoom.DeviceUIFilePathList)
-				{
-					var tempCommon = LocalDevice.Current.GetDeviceUI(deviceFilePath);
-					if (tempCommon == null || tempCommon.CommonDevice == null)
-					{
-						continue;
-					}
-					nowRoom.DeviceUIList.Add(tempCommon);
-				}
-				//鍦烘櫙(SceneUI)
-				nowRoom.SceneUIList.Clear();
-				foreach (var sceneUIFilePath in nowRoom.SceneUIFilePathList)
-				{
-					var jsonInfo = Encoding.UTF8.GetString(Global.ReadFileByHomeId(sceneUIFilePath));
-					var tempScene = Newtonsoft.Json.JsonConvert.DeserializeObject<SceneUI>(jsonInfo);
-					if (tempScene == null)
-					{
-						continue;
-					}
-					nowRoom.SceneUIList.Add(tempScene);
-				}
-				return nowRoom;
-			}
-			catch (Exception ex)
-			{
-				return null;
-			}
-		}
+        /// <summary>
+        /// 鏍规嵁璁惧鑾峰彇鎴块棿鍚嶅瓧(妤煎眰+鎴块棿鍚�)
+        /// </summary>
+        /// <returns>鎴块棿鍚�</returns>
+        /// <param name="device">璁惧瀵硅薄</param>
+        public string GetRoomNameByDevice(CommonDevice device)
+        {
+            var room = this.GetRoomByDevice(device);
+            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;
+            }
+            return room.Name;
+        }
 
-		/// <summary>
-		/// 鏍规嵁鎴块棿Id锛岃幏鍙栨埧闂村璞�
-		/// </summary>
-		/// <returns>The room by name.</returns>
-		/// <param name="roomId">鎴块棿ID</param>
-		public Room GetRoomById(string roomId)
-		{
-			return Lists.Find((obj) => obj.Id == roomId);
-		}
+        /// <summary>
+        /// 鑾峰彇璁惧鎵�鍦ㄧ殑鎴块棿
+        /// </summary>
+        /// <returns>The room by device.</returns>
+        /// <param name="device">璁惧瀵硅薄</param>
+        public Room GetRoomByDevice(CommonDevice device)
+        {
+            var deviceUI = new DeviceUI { };
+            deviceUI.DeviceAddr = device.DeviceAddr;
+            deviceUI.DeviceEpoint = device.DeviceEpoint;
 
-		/// <summary>
-		/// 鏍规嵁璁惧鑾峰彇鎴块棿鍚嶅瓧(妤煎眰+鎴块棿鍚�)
-		/// </summary>
-		/// <returns>鎴块棿鍚�</returns>
-		/// <param name="device">璁惧瀵硅薄</param>
-		public string GetRoomNameByDevice(CommonDevice device)
-		{
-			var room = this.GetRoomByDevice(device);
-			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;
-			}
-			return room.Name;
-		}
+            return Lists.Find((obj) => obj.DeviceUIFilePathList.Contains(deviceUI.FileName));
+        }
 
-		/// <summary>
-		/// 鑾峰彇璁惧鎵�鍦ㄧ殑鎴块棿
-		/// </summary>
-		/// <returns>The room by device.</returns>
-		/// <param name="device">璁惧瀵硅薄</param>
-		public Room GetRoomByDevice(CommonDevice device)
-		{
-			var deviceUI = new DeviceUI { };
-			deviceUI.DeviceAddr = device.DeviceAddr;
-			deviceUI.DeviceEpoint = device.DeviceEpoint;
+        /// <summary>
+        /// 閫氳繃鍦烘櫙id鑾峰彇鎴块棿鍚�
+        /// </summary>
+        /// <returns>The room name by scene identifier.</returns>
+        /// <param name="sceneId">Scene identifier.</param>
+        public string GetRoomNameBySceneId(int sceneId)
+        {
+            var room = GetRoomBySceneId(sceneId);
+            if (room == null)
+            {
+                return null;
+            }
+            return room.Name;
+        }
 
-			return Lists.Find((obj) => obj.DeviceUIFilePathList.Contains(deviceUI.FileName));
-		}
+        /// <summary>
+        /// 閫氳繃鍦烘櫙id鑾峰彇鎴块棿瀵硅薄
+        /// </summary>
+        /// <returns>The room  by scene identifier.</returns>
+        /// <param name="sceneId">Scene identifier.</param>
+        public Room GetRoomBySceneId(int sceneId)
+        {
+            foreach (var r in Lists)
+            {
+                foreach (var scene in r.SceneUIList)
+                {
+                    if (scene.Id == sceneId)
+                    {
+                        return r;
+                    }
+                }
+            }
+            return null;
+        }
 
-		/// <summary>
-		/// 閫氳繃鍦烘櫙id鑾峰彇鎴块棿鍚�
-		/// </summary>
-		/// <returns>The room name by scene identifier.</returns>
-		/// <param name="sceneId">Scene identifier.</param>
-		public string GetRoomNameBySceneId(int sceneId)
-		{
-			var room = GetRoomBySceneId(sceneId);
-			if (room == null)
-			{
-				return null;
-			}
-			return room.Name;
-		}
+        /// <summary>
+        /// 鑾峰彇褰撳墠妤煎眰鐨勬埧闂�
+        /// </summary>
+        /// <param name="id"></param>
+        /// <returns></returns>
+        public  List<Room> GetRoomsByFloorId(string id)
+        {
+            return Lists.FindAll((obj) => obj.FloorId==id);
+        }
+        /// <summary>
+        /// 鑾峰彇褰撳墠妤煎眰鐨勬埧闂村悕绉�
+        /// </summary>
+        /// <param name="id"></param>
+        /// <returns></returns>
+        public  List<string> GetRoomNamesByFloorId(string id)
+        {
+            List<string> names = new List<string> { };
+            foreach(var r in Lists)
+            {
+                if(r.FloorId==id)
+                {
+                    names.Add(r.Name);
+                }
+            }
+            return names;
+        }
 
-		/// <summary>
-		/// 閫氳繃鍦烘櫙id鑾峰彇鎴块棿瀵硅薄
-		/// </summary>
-		/// <returns>The room  by scene identifier.</returns>
-		/// <param name="sceneId">Scene identifier.</param>
-		public Room GetRoomBySceneId(int sceneId)
-		{
-			foreach (var r in Lists)
-			{
-				foreach (var scene in r.SceneUIList)
-				{
-					if (scene.Id == sceneId)
-					{
-						return r;
-					}
-				}
-			}
-			return null;
-		}
+        /// <summary>
+        /// 鑾峰彇褰撳墠妤煎眰鐨勬埧闂�(鎷兼帴浜嗐�愬父鐢ㄣ�戝湪绗竴浣�)
+        /// </summary>
+        /// <param name="id"></param>
+        /// <returns></returns>
+        public  List<Room> GetRoomsByFloorIdAppendLoveRoom(string id)
+        {
+            var r= Lists.FindAll((obj) => obj.FloorId == id);
+            r.Insert(0, GetLoveRoom());
+            return r;
+        }
 
+        /// <summary>
+        /// 鑾峰彇褰撳墠妤煎眰鐨勬埧闂�(鎷兼帴浜嗐�愬父鐢ㄣ�戝湪绗竴浣�)
+        /// </summary>
+        /// <returns></returns>
+        public  List<Room> GetRoomsByCurrentFloorIdAppendLoveRoom()
+        {
+            var r = Lists.FindAll((obj) => obj.FloorId == Config.Instance.Home.CurrentFloorId);
+            r.Insert(0, GetLoveRoom());
+            return r;
+        }
 
-		#endregion
+        #endregion
 
-		#region 鈼� 鎴块棿鏂规硶________________________
+        #region 鈼� 鎴块棿鏂规硶________________________
 
-		/// <summary>
-		/// 璁惧鐨勬埧闂村彉鏇�
-		/// </summary>
-		/// <param name="device">璁惧瀵硅薄</param>
-		/// <param name="roomId">鏂版埧闂碔d</param>
-		public void ChangedRoom(CommonDevice device, string roomId)
-		{
-			//鎴块棿鏄惁淇敼
-			if (this.IsRoomChanged(device, roomId) == false)
-			{
-				return;
-			}
-			//浠庡師鏉ョ殑鎴块棿绉婚櫎璁惧
-			this.DeleteDevice(device);
+        /// <summary>
+        /// 璁惧鐨勬埧闂村彉鏇�
+        /// </summary>
+        /// <param name="device">璁惧瀵硅薄</param>
+        /// <param name="roomId">鏂版埧闂碔d</param>
+        public void ChangedRoom(CommonDevice device, string roomId)
+        {
+            //鎴块棿鏄惁淇敼
+            if (this.IsRoomChanged(device, roomId) == false)
+            {
+                return;
+            }
+            //浠庡師鏉ョ殑鎴块棿绉婚櫎璁惧
+            this.DeleteDevice(device);
 
-			//娣诲姞鍒版柊鐨勬埧闂�
-			var room = this.GetRoomById(roomId);
-			if (room != null)
-			{
-				room.AddDevice(device);
-			}
-		}
+            //娣诲姞鍒版柊鐨勬埧闂�
+            var room = this.GetRoomById(roomId);
+            if (room != null)
+            {
+                room.AddDevice(device);
+            }
+        }
+
+        /// <summary>
+        /// 鎴块棿鍚嶅瓧鏄惁鏈変慨鏀�
+        /// </summary>
+        /// <param name="device">璁惧瀵硅薄</param>
+        /// <param name="roomId">鏂版埧闂碔d</param>
+        /// <returns></returns>
+        public bool IsRoomChanged(CommonDevice device, string roomId)
+        {
+            var room = this.GetRoomByDevice(device);
+            if (room == null || room.Id != roomId)
+            {
+                return true;
+            }
+            return false;
+        }
 
-		/// <summary>
-		/// 鎴块棿鍚嶅瓧鏄惁鏈変慨鏀�
-		/// </summary>
-		/// <param name="device">璁惧瀵硅薄</param>
-		/// <param name="roomId">鏂版埧闂碔d</param>
-		/// <returns></returns>
-		public bool IsRoomChanged(CommonDevice device, string roomId)
-		{
-			var room = this.GetRoomByDevice(device);
-			if (room == null || room.Id != roomId)
-			{
-				return true;
-			}
-			return false;
-		}
+        #endregion
 
-		#endregion
+        #region 鈼� 鏇存柊鎴块棿_________________________
 
-		#region 鈼� 鏇存柊鎴块棿_________________________
+        /// <summary>
+        /// Updates the memorry.
+        /// </summary>
+        /// <param name="roomFilePath">Room file path.</param>
+        public static void UpdateMemorry(string roomFilePath)
+        {
+            GetRoomByFilePath(roomFilePath);
+        }
 
-		/// <summary>
-		/// Updates the memorry.
-		/// </summary>
-		/// <param name="roomFilePath">Room file path.</param>
-		public static void UpdateMemorry(string roomFilePath)
-		{
-			GetRoomByFilePath(roomFilePath);
-		}
+        #endregion
 
-		#endregion
+        #region 鈼� 鎴块棿鑳屾櫙鍥剧殑鐩稿叧___________________
+        /// <summary>
+        /// 鍒犻櫎鑳屾櫙鍥剧墖
+        /// </summary>
+        /// <param name="fileName">fileName瀹為檯涓婂寘鍚簡浣忓畢璺姴 濡� 浣忓畢/鏂囦欢鍚�.</param>
+        public static void DeleteBackGroundIamageFilebyHomeId(string fileName)
+        {
+            if (fileName == null)
+            {
+                return;
+            }
+            var pathLists = fileName.Split('/');
+            if (pathLists == null || pathLists.Count() < 9 || pathLists[8] == null)
+            {
+                return;
+            }
+            var path = System.IO.Path.Combine(Config.Instance.FullPath, fileName);
+            if (!Global.IsExistsByHomeId(pathLists[8]))
+            {
+                return;
+            }
+            //鍒犻櫎鏈湴鍥剧墖
+            System.IO.File.Delete(path);
+            //鍒犻櫎澶囦唤
+            Phone.UserCenter.HdlAutoBackupLogic.DeleteFile(pathLists[8]);
+        }
 
-		#region 鈼� 鎴块棿鑳屾櫙鍥剧殑鐩稿叧___________________
-		/// <summary>
-		/// 鍒犻櫎鑳屾櫙鍥剧墖
-		/// </summary>
-		/// <param name="fileName">fileName瀹為檯涓婂寘鍚簡浣忓畢璺姴 濡� 浣忓畢/鏂囦欢鍚�.</param>
-		public static void DeleteBackGroundIamageFilebyHomeId(string fileName)
-		{
-			if (fileName == null)
-			{
-				return;
-			}
-			var pathLists = fileName.Split('/');
-			if (pathLists == null || pathLists.Count() < 9 || pathLists[8] == null)
-			{
-				return;
-			}
-			var path = System.IO.Path.Combine(Config.Instance.FullPath, fileName);
-			if (!Global.IsExistsByHomeId(pathLists[8]))
-			{
-				return;
-			}
-			//鍒犻櫎鏈湴鍥剧墖
-			System.IO.File.Delete(path);
-			//鍒犻櫎澶囦唤
-			Phone.UserCenter.HdlAutoBackupLogic.DeleteFile(pathLists[8]);
-		}
+        /// <summary>
+        /// 绉诲姩鑳屾櫙鍥剧墖鍒颁綇瀹呯洰褰曚笅
+        /// </summary>
+        /// <param name="oldFile">闇�瑕佺Щ鍔ㄧ殑鏂囦欢(鐩存帴鏂囦欢鍚�)</param>
+        /// <param name="newFile">瑕佺Щ鍔ㄥ埌鐨勪綅缃�-(鍖呭惈浣忓畢璺緞锛氫綇瀹�/鏂囦欢鍚�)</param>
+        public void MoveBackGroundIamageFileToDirectory(string oldFile, string newFile)
+        {
+            try
+            {
+                var newPath = System.IO.Path.Combine(Config.Instance.FullPath, newFile);
+                var path = System.IO.Path.Combine(Shared.IO.FileUtils.RootPath,oldFile);
+                Global.MoveFileToDirectory(path, newPath);
+                //澶囦唤
+                Phone.UserCenter.HdlAutoBackupLogic.AddOrEditorFile(oldFile);
+                //Save();
+            }
+            catch (Exception ex)
+            {
+                System.Console.WriteLine("绉诲姩鍥剧墖寮傚父 " + ex.Message);
+            }
+        }
 
-		/// <summary>
-		/// 绉诲姩鑳屾櫙鍥剧墖鍒颁綇瀹呯洰褰曚笅
-		/// </summary>
-		/// <param name="oldFile">闇�瑕佺Щ鍔ㄧ殑鏂囦欢(鐩存帴鏂囦欢鍚�)</param>
-		/// <param name="newFile">瑕佺Щ鍔ㄥ埌鐨勪綅缃�-(鍖呭惈浣忓畢璺緞锛氫綇瀹�/鏂囦欢鍚�)</param>
-		public void MoveBackGroundIamageFileToDirectory(string oldFile, string newFile)
-		{
-			try
-			{
-				var newPath = System.IO.Path.Combine(Config.Instance.FullPath, newFile);
-				var path = System.IO.Path.Combine(Shared.IO.FileUtils.RootPath, oldFile);
-				Global.MoveFileToDirectory(path, newPath);
-				//澶囦唤
-				Phone.UserCenter.HdlAutoBackupLogic.AddOrEditorFile(oldFile);
-				//Save();
-			}
-			catch (Exception ex)
-			{
-				System.Console.WriteLine("绉诲姩鍥剧墖寮傚父 " + ex.Message);
-			}
-		}
+        #endregion
 
-		#endregion
+        #region 鈼� 娣诲姞璁惧________________________
 
-		#region 鈼� 娣诲姞璁惧________________________
+        /// <summary>
+        /// 娣诲姞璁惧
+        /// </summary>
+        /// <param name="deviceUIFilePath">Device UIF ile path.</param>
+        public void AddDevice(string deviceUIFilePath)
+        {
+            if (string.IsNullOrEmpty(deviceUIFilePath))
+            {
+                return;
+            }
+            var jsonInfo = Encoding.UTF8.GetString(Global.ReadFileByHomeId(deviceUIFilePath));
+            var deviceUI = Newtonsoft.Json.JsonConvert.DeserializeObject<DeviceUI>(jsonInfo);
+            if (null == deviceUI || null == deviceUI.CommonDevice)
+            {
+                //褰撳墠瀵硅薄鏁版嵁鏃犳晥
+                return;
+            }
+            if (!DeviceUIFilePathList.Contains(deviceUIFilePath) && !DeviceUIList.Contains(deviceUI))
+            {
+                DeviceUIFilePathList.Add(deviceUIFilePath);
+                DeviceUIList.Add(deviceUI);
+            }
+            //淇濆瓨鍒版湰鍦�
+            Save();
+        }
 
-		/// <summary>
-		/// 娣诲姞璁惧
-		/// </summary>
-		/// <param name="deviceUIFilePath">Device UIF ile path.</param>
-		public void AddDevice(string deviceUIFilePath)
-		{
-			if (string.IsNullOrEmpty(deviceUIFilePath))
-			{
-				return;
-			}
-			var jsonInfo = Encoding.UTF8.GetString(Global.ReadFileByHomeId(deviceUIFilePath));
-			var deviceUI = Newtonsoft.Json.JsonConvert.DeserializeObject<DeviceUI>(jsonInfo);
-			if (null == deviceUI || null == deviceUI.CommonDevice)
-			{
-				//褰撳墠瀵硅薄鏁版嵁鏃犳晥
-				return;
-			}
-			if (!DeviceUIFilePathList.Contains(deviceUIFilePath) && !DeviceUIList.Contains(deviceUI))
-			{
-				DeviceUIFilePathList.Add(deviceUIFilePath);
-				DeviceUIList.Add(deviceUI);
-			}
-			//淇濆瓨鍒版湰鍦�
-			Save();
-		}
+        /// <summary>
+        /// 娣诲姞璁惧
+        /// </summary>
+        /// <param name="device">瑕佹坊鍔犵殑璁惧瀵硅薄</param>
+        public void AddDevice(CommonDevice device)
+        {
+            if (device == null)
+            {
+                return;
+            }
+            //璁惧淇℃伅淇濆瓨鍒版湰鍦�
+            device.Save();
 
-		/// <summary>
-		/// 娣诲姞璁惧
-		/// </summary>
-		/// <param name="device">瑕佹坊鍔犵殑璁惧瀵硅薄</param>
-		public void AddDevice(CommonDevice device)
-		{
-			if (device == null)
-			{
-				return;
-			}
-			//璁惧淇℃伅淇濆瓨鍒版湰鍦�
-			device.Save();
+            //娣诲姞鑷姩澶囦唤
+            HdlAutoBackupLogic.AddOrEditorFile(device.FilePath);
 
-			//娣诲姞鑷姩澶囦唤
-			HdlAutoBackupLogic.AddOrEditorFile(device.FilePath);
+            DeviceUI deviceUI = Common.LocalDevice.Current.GetDeviceUI(device);
+            if (DeviceUIFilePathList.Contains(deviceUI.FileName) == false)
+            {
+                DeviceUIFilePathList.Add(deviceUI.FileName);
+                DeviceUIList.Add(deviceUI);
+                //淇濆瓨鍒版湰鍦�
+                Save();
 
-			DeviceUI deviceUI = Common.LocalDevice.Current.GetDeviceUI(device);
-			if (DeviceUIFilePathList.Contains(deviceUI.FileName) == false)
-			{
-				DeviceUIFilePathList.Add(deviceUI.FileName);
-				DeviceUIList.Add(deviceUI);
-				//淇濆瓨鍒版湰鍦�
-				Save();
-
-				//娣诲姞鑷姩澶囦唤
-				HdlAutoBackupLogic.AddOrEditorFile(FileName);
-			}
-		}
-
-		#endregion
-
-		#region 鈼� 鍒犻櫎璁惧_________________________
-
-		/// <summary>
-		/// 鍒犻櫎鍔熻兘-璁惧
-		/// </summary>
-		/// <param name="deviceUIFilePath">Device UIF ile path.</param>
-		public void DeleteDevice(string deviceUIFilePath)
-		{
-			if (deviceUIFilePath == null) return;
-			if (DeviceUIFilePathList.Contains(deviceUIFilePath) && Global.IsExistsByHomeId(deviceUIFilePath))
-			{
-				DeviceUIFilePathList.Remove(deviceUIFilePath);
-				DeviceUIList.RemoveAll((obj) => obj.FileName == deviceUIFilePath);
-				HdlAutoBackupLogic.DeleteFile(deviceUIFilePath);
-				Save();
-			}
-		}
-
-		/// <summary>
-		/// 鍒犻櫎璁惧
-		/// </summary>
-		/// <param name="device">瑕佸垹闄ょ殑璁惧瀵硅薄</param>
-		public void DeleteDevice(CommonDevice device)
-		{
-			if (device == null)
-			{
-				return;
-			}
-			DeviceUI deviceUI = new DeviceUI();
-			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();
-			//鏇存敼鑷姩澶囦唤
-			HdlAutoBackupLogic.AddOrEditorFile(room.FileName);
-		}
-
-		#endregion
-
-		#region 鈼� 鑾峰彇璁惧_________________________
-
-		/// <summary>
-		/// 鑾峰彇鎵�鏈夋埧闂寸殑鎵�鏈夎澶�
-		/// </summary>
-		public static void GetAllRoomDeviceUIList()
-		{
-			List<string> devicePathList = new List<string>();
-			//鎵�鏈夋埧闂寸殑鎵�鏈夎澶�
-			AllRoomDeviceUIList.Clear();
-			foreach (var room in Shared.Common.Room.Lists)
-			{
-				if (room.IsSharedRoom)
-				{
-					continue;
-				}
-				if (room.DeviceUIList.Count == 0)
-				{
-					continue;
-				}
-				foreach (var device in room.DeviceUIList)
-				{
-					if (device == null || device.CommonDevice == null)
-					{
-						continue;
-					}
-					if (!devicePathList.Contains(device.FileName))
-					{
-						AllRoomDeviceUIList.Add(device);
-						devicePathList.Add(device.FileName);
-					}
-				}
-			}
-		}
-
-		/// <summary>
-		/// 鏍规嵁璁惧鑾峰彇瀹冪殑UI瀵硅薄锛屽鏋滀笉瀛樺湪鍒欐柊寤�
-		/// </summary>
-		/// <returns>The device user interface.</returns>
-		/// <param name="device">璁惧瀵硅薄</param>
-		public DeviceUI GetDeviceUI(CommonDevice device)
-		{
-			return Common.LocalDevice.Current.GetDeviceUI(device);
-		}
-
-		/// <summary>
-		/// 閲嶆柊鑾峰彇-鎵�鏈夋埧闂寸殑鎵�鏈夎澶囩被鍨�
-		/// </summary>
-		public static void GetAllRoomDeviceTypeList()
-		{
-			AllRoomDeviceTypeList.Clear();
-			foreach (var deviceUI in AllRoomDeviceUIList)
-			{
-				if (deviceUI == null || deviceUI.CommonDevice == null)
-				{
-					continue;
-				}
-				if (!AllRoomDeviceTypeList.Contains(deviceUI.CommonDevice.Type))
-				{
-					AllRoomDeviceTypeList.Add(deviceUI.CommonDevice.Type);
-				}
-			}
-		}
-
-		/// <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);
-		}
-
-		#endregion
-
-		#region 鈼� 娣诲姞鍦烘櫙_________________________
-
-		/// <summary>
-		/// 娣诲姞鍦烘櫙  0澶辫触 1鎴愬姛  -1宸茬粡瀛樺湪
-		/// </summary>
-		/// <returns>The scene.</returns>
-		/// <param name="sceneName">Scene name.</param>
-		/// <param name="sceneIconPath">鑳屾櫙鍥剧墖锛屼笉鍖呭惈浣忓畢璺緞 濡傛灉iconPathType=1鎴栬��2 闇�瑕佹嫾鎺ヤ綇瀹� 鍙樻垚 浣忓畢/sceneIconPath</param>
-		/// <param name="commons">Commons.</param>
-		/// <param name="iconPathType">I鍦烘櫙鑳屾櫙鍥剧墖鏉ユ簮绫诲瀷 鍥剧墖鏉ユ簮 0--鏈湴鍥惧簱 1--鎷嶇収 2--绯荤粺鍥惧簱 榛樿0</param>
-		public async System.Threading.Tasks.Task<int> AddScene(string sceneName, string sceneIconPath, List<ZigBee.Device.Scene.AddSceneMemberData> commons, int iconPathType = 0)
-		{
-			if (AllRoomSceneUIList.Find(s => s.Name == sceneName) != null)
-			{
-				return -1;
-			}
-			var getSceneIdAllData = await ZigBee.Device.Scene.GetSceneNewIdAsync(sceneName);
-			if (getSceneIdAllData == null || getSceneIdAllData.getSceneIdData == null)
-			{
-				return 0;
-			}
-			var getSceneIdData = getSceneIdAllData.getSceneIdData;
-			//寰幆鐩稿悓鎶ラ敊
-			foreach (var tempSceneUI in AllRoomSceneUIList)
-			{
-				if (tempSceneUI.Id == getSceneIdAllData.getSceneIdData.NewScenesId)
-				{
-					//鍦烘櫙宸插瓨鍦�
-					return -1;
-				}
-			}
-
-			bool result = true;
-			foreach (var common in commons)
-			{
-				//娣诲姞鏂版垚鍛�
-				var addSceneMemberData = new ZigBee.Device.Scene.AddSceneMemberData
-				{
-					DeviceAddr = common.DeviceAddr,
-					Type = common.Type,
-					Epoint = common.Epoint,
-					ScenesId = getSceneIdData.NewScenesId,
-					TaskList = common.TaskList,
-					DelayTime = common.DelayTime,
-					ElseScenesId = common.ElseScenesId
-				};
-				//common.ScenesId = getSceneIdData.NewScenesId;
-				//娣诲姞鏂版垚鍛� 杩斿洖缁撴灉
-				var addSceneMemberResponseAllData = await ZigBee.Device.Scene.AddSceneMemberAsync(addSceneMemberData);
-				if (addSceneMemberResponseAllData == null || addSceneMemberResponseAllData.addSceneMemberResponseData == null)
-				{
-					continue;
-				}
-				var addSceneMemberResponseData = addSceneMemberResponseAllData.addSceneMemberResponseData;
-				if (addSceneMemberResponseData == null && addSceneMemberResponseData.Result != 1)
-				{
-					result = false;
-				}
-			}
-			//鍔犲叆鎴愬姛
-			if (result)
-			{
-				//iconPathType=0 鐩存帴浼犲�硷紝 iconPathType=1鍜宨conPathType=2闇�瑕佹嫾鎺ヤ綇瀹呰矾寰�
-				var fullPath = sceneIconPath;
-				if (iconPathType == 1 || iconPathType == 2)
-				{
-					Common.Room.CurrentRoom.MoveBackGroundIamageFileToDirectory(sceneIconPath, $"{Config.Instance.FullPath}/{sceneIconPath}");
-					fullPath = $"{Config.Instance.FullPath}/{sceneIconPath}";
-				}
-				var sceneUI = new SceneUI
-				{
-					Name = sceneName,
-					Id = getSceneIdData.NewScenesId,
-					IconPath = fullPath,
-					IconPathType = iconPathType,
-					AddSceneMemberDataList = commons
-				};
-				SceneUIList.Add(sceneUI);
-				SceneUIFilePathList.Add(sceneUI.FileName);
-				sceneUI.Save();
-				Save();
-				HdlAutoBackupLogic.AddOrEditorFile(sceneUI.FileName);
-				return 1;
-			}
-			return 0;
-		}
-
-		/// <summary>
-		/// 娣诲姞鍦烘櫙
-		/// </summary>
-		/// <param name="scene">Scene.</param>
-		public void AddScene(SceneUI scene)
-		{
-			var sceneUI = new SceneUI
-			{
-				Name = scene.Name,
-				Id = scene.Id,
-				IconPath = scene.IconPath,
-				IconPathType = scene.IconPathType,
-				AddSceneMemberDataList = scene.AddSceneMemberDataList
-			};
-			SceneUIList.Add(sceneUI);
-			SceneUIFilePathList.Add(sceneUI.FileName);
-			sceneUI.Save();
-			Save();
-		}
-
-		#endregion
-
-		#region 鈼� 璁惧鏄惁鏀惰棌______________________
-
-		/// <summary>
-		/// 鏄惁鏄敹钘忚澶�
-		/// </summary>
-		/// <param name="room"></param>
-		/// <param name="filePath"></param>
-		/// <returns></returns>
-		public bool IsCollectInRoom(Room room, string filePath)
-		{
-			if (room.IsLove)
-			{
-				return true;
-			}
-			if (GetLoveRoom().DeviceUIFilePathList.Find((obj) => obj == filePath) == null)
-			{
-				return false;
-			}
-			return true;
-		}
-		#endregion
-
-		#region 鈼� 淇敼鍦烘櫙________________________
-
-		/// <summary>
-		/// 淇敼鍦烘櫙璁惧 0澶辫触 1鎴愬姛
-		/// </summary>
-		/// <returns>The scene.</returns>
-		/// <param name="sceneUI">Scene user interface.</param>
-		/// <param name="sceneRemoveMemberData">Scene remove member data.</param>
-		/// <param name="addCommons">Add commons.</param>
-		public async System.Threading.Tasks.Task<int> ModifyScene(SceneUI sceneUI, Scene.SceneRemoveMemberData sceneRemoveMemberData, List<Scene.AddSceneMemberData> addCommons)
-		{
-			if (AllRoomSceneUIList.Find(s => s.Name == sceneUI.Name) == null)
-			{
-				return 0;
-			}
+                //娣诲姞鑷姩澶囦唤
+                HdlAutoBackupLogic.AddOrEditorFile(FileName);
+            }
+        }
 
-			bool result = true;
-			//绉婚櫎鎴愬憳 杩斿洖缁撴灉
-			var removeSceneMemberResponseAllData = await ZigBee.Device.Scene.RemoveSceneMemberAsync(sceneRemoveMemberData);
-			if (removeSceneMemberResponseAllData == null || removeSceneMemberResponseAllData.removeSceneMemberResponseData == null)
-			{
-				return 0;
-			}
-			var removeSceneMemberResponseData = removeSceneMemberResponseAllData.removeSceneMemberResponseData;
-			if (removeSceneMemberResponseData == null)
-			{
-				return 0;
-			}
-			if (removeSceneMemberResponseData.Result != 0)
-			{
-				result = false;
-			}
-			//娣诲姞
-			foreach (var addCommon in addCommons)
-			{
-				//娣诲姞鏂版垚鍛�
-				var addSceneMemberData = new ZigBee.Device.Scene.AddSceneMemberData
-				{
-					DeviceAddr = addCommon.DeviceAddr,
-					Type = addCommon.Type,
-					Epoint = addCommon.Epoint,
-					ScenesId = sceneUI.Id,
-					TaskList = addCommon.TaskList,
-					DelayTime = addCommon.DelayTime,
-					ElseScenesId = addCommon.ElseScenesId
-				};
-				//娣诲姞鏂版垚鍛� 杩斿洖缁撴灉
-				var addSceneMemberResponseAllData = await ZigBee.Device.Scene.AddSceneMemberAsync(addSceneMemberData);
-				if (addSceneMemberResponseAllData == null || addSceneMemberResponseAllData.addSceneMemberResponseData == null)
-				{
-					result = false;
-					System.Console.WriteLine("娣诲姞鍦烘櫙澶辫触");
-					continue;
-				}
-				var addSceneMemberResponseData = addSceneMemberResponseAllData.addSceneMemberResponseData;
-				if (addSceneMemberResponseData == null && addSceneMemberResponseData.Result != 1)
-				{
-					result = false;
-				}
-			}
-			//鍔犲叆鎴愬姛
-			if (result)
-			{
-				sceneUI.AddSceneMemberDataList = addCommons;
-				sceneUI.Save();
-				return 1;
-			}
-			return 0;
-		}
+        #endregion
 
-		#endregion
+        #region 鈼� 鍒犻櫎璁惧_________________________
+        /// <summary>
+        /// 鍒犻櫎鍔熻兘-璁惧
+        /// </summary>
+        /// <param name="deviceUIFilePath">Device UIF ile path.</param>
+        public void DeleteDevice(string deviceUIFilePath)
+        {
+            if (deviceUIFilePath == null) return;
+            if (DeviceUIFilePathList.Contains(deviceUIFilePath) && Global.IsExistsByHomeId(deviceUIFilePath))
+            {
+                DeviceUIFilePathList.Remove(deviceUIFilePath);
+                DeviceUIList.RemoveAll((obj) => obj.FileName == deviceUIFilePath);
+                HdlAutoBackupLogic.DeleteFile(deviceUIFilePath);
+                Save();
+            }
+        }
 
-		#region 鈼� 鍒犻櫎鍦烘櫙________________________
+        /// <summary>
+        /// 鍒犻櫎璁惧
+        /// </summary>
+        /// <param name="device">瑕佸垹闄ょ殑璁惧瀵硅薄</param>
+        public void DeleteDevice(CommonDevice device)
+        {
+            if (device == null)
+            {
+                return;
+            }
+            DeviceUI deviceUI = new DeviceUI();
+            deviceUI.DeviceAddr = device.DeviceAddr;
+            deviceUI.DeviceEpoint = device.DeviceEpoint;
 
-		/// <summary>
-		/// 绉婚櫎鍦烘櫙--璇ヤ粎杩涜浜嗗鏈湴鍦烘櫙鏁版嵁鐨勫垹闄�
-		/// </summary>
-		/// <param name="sceneUI">Scene user interface.</param>
-		public void RemoveScene(SceneUI sceneUI)
-		{
-			if (Global.IsExistsByHomeId(sceneUI.FileName) == false)
-			{
-				return;
-			}
-			SceneUIList.Remove(sceneUI);
-			SceneUIFilePathList.Remove(sceneUI.FileName);
-			Save();
-			Global.DeleteFilebyHomeId(sceneUI.FileName);
-			HdlAutoBackupLogic.DeleteFile(sceneUI.FileName);
-			HdlAutoBackupLogic.AddOrEditorFile(FileName);
-		}
+            //鏍规嵁璁惧锛岃幏鍙栨墍鍦ㄧ殑鎴块棿
+            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();
+            //鏇存敼鑷姩澶囦唤
+            HdlAutoBackupLogic.AddOrEditorFile(room.FileName);
+        }
 
-		#endregion
+        #endregion
 
-		#region 鈼� 鑾峰彇鍦烘櫙________________________
+        #region 鈼� 鑾峰彇璁惧_________________________
 
-		/// <summary>
-		/// 閫氳繃鍦烘櫙id鑾峰彇鍦烘櫙
-		/// </summary>
-		/// <returns>The scene UIB y scene identifier.</returns>
-		/// <param name="sceneId">Scene identifier.</param>
-		public SceneUI GetSceneUIBySceneId(int sceneId)
-		{
-			foreach (var r in Lists)
-			{
-				foreach (var sceneUI in r.SceneUIList)
-				{
-					if (sceneUI.Id == sceneId)
-					{
-						return sceneUI;
-					}
-				}
-			}
-			return null;
-		}
+        /// <summary>
+        /// 鑾峰彇鎵�鏈夋埧闂寸殑鎵�鏈夎澶�
+        /// </summary>
+        public static void GetAllRoomDeviceUIList()
+        {
+            List<string> devicePathList = new List<string>();
+            //鎵�鏈夋埧闂寸殑鎵�鏈夎澶�
+            AllRoomDeviceUIList.Clear();
+            foreach (var room in Shared.Common.Room.Lists)
+            {
+                if(room.IsSharedRoom)
+                {
+                    continue;
+                }
+                if (room.DeviceUIList.Count == 0)
+                {
+                    continue;
+                }
+                foreach (var device in room.DeviceUIList)
+                {
+                    if (device == null || device.CommonDevice == null)
+                    {
+                        continue;
+                    }
+                    if (!devicePathList.Contains(device.FileName))
+                    {
+                        AllRoomDeviceUIList.Add(device);
+                        devicePathList.Add(device.FileName);
+                    }
+                }
+            }
+        }
 
-		#endregion
+        /// <summary>
+        /// 鏍规嵁璁惧鑾峰彇瀹冪殑UI瀵硅薄锛屽鏋滀笉瀛樺湪鍒欐柊寤�
+        /// </summary>
+        /// <returns>The device user interface.</returns>
+        /// <param name="device">璁惧瀵硅薄</param>
+        public DeviceUI GetDeviceUI(CommonDevice device)
+        {
+            return Common.LocalDevice.Current.GetDeviceUI(device);
+        }
 
-		#region 鈼� 鍒锋柊鍦烘櫙_________________________
+        /// <summary>
+        /// 閲嶆柊鑾峰彇-鎵�鏈夋埧闂寸殑鎵�鏈夎澶囩被鍨�
+        /// </summary>
+        public static void GetAllRoomDeviceTypeList()
+        {
+            AllRoomDeviceTypeList.Clear();
+            foreach (var deviceUI in AllRoomDeviceUIList)
+            {
+                if (deviceUI == null || deviceUI.CommonDevice == null)
+                {
+                    continue;
+                }
+                if (!AllRoomDeviceTypeList.Contains(deviceUI.CommonDevice.Type))
+                {
+                    AllRoomDeviceTypeList.Add(deviceUI.CommonDevice.Type);
+                }
+            }
+        }
 
-		/// <summary>
-		/// 鍒锋柊鎴块棿鐨勫満鏅垪琛�
-		/// </summary>
-		public async System.Threading.Tasks.Task<bool> RefreshSceneUIList()
-		{
-			return false;
-			//System.Console.WriteLine($"寮�濮嬭姹傜綉鍏冲満鏅�****{DateTime.Now.ToString("yyMMdd hhmmss fff")}*****");
-			//bool result = true;
-			//var sceneList = await ZigBee.Device.Scene.GetSceneListAsync();
-			//System.Console.WriteLine($"缁撴潫璇锋眰缃戝叧鍦烘櫙****{DateTime.Now.ToString("yyMMdd hhmmss fff")}*****");
-			//if (sceneList == null)
-			//{
-			//    return false;
-			//}
-			//List<int> sceneIDList = new List<int> { };
-			//System.Console.WriteLine($"寮�濮嬫湰鍦板満鏅�****{DateTime.Now.ToString("yyMMdd hhmmss fff")}*****");
-			//foreach (var scene in sceneList)
-			//{
-			//    if (scene == null)
-			//    {
-			//        continue;
-			//    }
-			//    sceneIDList.Add(scene.ScenesId);
-			//}
-			//foreach(var r in Lists)
-			//{
-			//    if(r.SceneUIList==null || r.SceneUIList.Count==0)
-			//    {
-			//        continue;
-			//    }
-			//    foreach(var rScene in r.SceneUIList)
-			//    {
-			//        if(rScene==null)
-			//        {
-			//            continue;
-			//        }
-			//        //var scene = sceneList.Find((obj) => rScene.ScenesId == obj.ScenesId);
-			//        if(sceneIDList.Contains(rScene.ScenesId)==false)
-			//        {
-			//            var removeResult = r.SceneUIList.Remove(rScene);
-			//            r.Save();
-			//            if (removeResult == false)
-			//            {
-			//                result = false;
-			//            }
-			//        }
-			//    }
-			//}
-			//System.Console.WriteLine($"缁撴潫鏈湴鍦烘櫙****{DateTime.Now.ToString("yyMMdd hhmmss fff")}*****");
-			//return result;
-		}
+        /// <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);
+        }
 
-		#endregion
+        /// <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;
+        }
 
-		#region 鈼� 淇濆瓨____________________________
+        /// <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;
+        }
 
-		/// <summary>
-		/// 淇濆瓨
-		/// </summary>
-		/// <param name="autoBackup">鏄惁鑷姩澶囦唤锛岄粯璁rue</param>
-		public void Save(bool autoBackup = true)
-		{
-			//淇濆瓨鎴块棿淇℃伅
-			Global.WriteFileByBytesByHomeId(FileName, System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(this)));
-			if (autoBackup == true)
-			{
-				HdlAutoBackupLogic.AddOrEditorFile(FileName);
-			}
-		}
 
-		#endregion
+        #endregion
 
-		#region 鈼� 妤煎眰鍜屾埧闂撮『搴忕浉鍏砡______________
+        #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);
-			}
+        /// <summary>
+        /// 娣诲姞鍦烘櫙  0澶辫触 1鎴愬姛  -1宸茬粡瀛樺湪
+        /// </summary>
+        /// <returns>The scene.</returns>
+        /// <param name="sceneName">Scene name.</param>
+        /// <param name="sceneIconPath">鑳屾櫙鍥剧墖锛屼笉鍖呭惈浣忓畢璺緞 濡傛灉iconPathType=1鎴栬��2 闇�瑕佹嫾鎺ヤ綇瀹� 鍙樻垚 浣忓畢/sceneIconPath</param>
+        /// <param name="commons">Commons.</param>
+        /// <param name="iconPathType">I鍦烘櫙鑳屾櫙鍥剧墖鏉ユ簮绫诲瀷 鍥剧墖鏉ユ簮 0--鏈湴鍥惧簱 1--鎷嶇収 2--绯荤粺鍥惧簱 榛樿0</param>
+        public async System.Threading.Tasks.Task<int> AddScene(string sceneName, string sceneIconPath, List<ZigBee.Device.Scene.AddSceneMemberData> commons, int iconPathType = 0)
+        {
+            if (AllRoomSceneUIList.Find(s => s.Name == sceneName) != null)
+            {
+                return -1;
+            }
+            var getSceneIdAllData = await ZigBee.Device.Scene.GetSceneNewIdAsync(sceneName);
+            if (getSceneIdAllData == null || getSceneIdAllData.getSceneIdData == null)
+            {
+                return 0;
+            }
+            var getSceneIdData = getSceneIdAllData.getSceneIdData;
+            //寰幆鐩稿悓鎶ラ敊
+            foreach (var tempSceneUI in AllRoomSceneUIList)
+            {
+                if (tempSceneUI.Id == getSceneIdAllData.getSceneIdData.NewScenesId)
+                {
+                    //鍦烘櫙宸插瓨鍦�
+                    return -1;
+                }
+            }
 
-			var listRoomSort = new List<string>();
-			if (dicAllSort.ContainsKey(i_floorKeys) == true)
-			{
-				listRoomSort = dicAllSort[i_floorKeys];
-			}
-			else
-			{
-				dicAllSort[i_floorKeys] = listRoomSort;
-			}
+            bool result = true;
+            foreach (var common in commons)
+            {
+                //娣诲姞鏂版垚鍛�
+                var addSceneMemberData = new ZigBee.Device.Scene.AddSceneMemberData
+                {
+                    DeviceAddr = common.DeviceAddr,
+                    Type = common.Type,
+                    Epoint = common.Epoint,
+                    ScenesId = getSceneIdData.NewScenesId,
+                    TaskList = common.TaskList,
+                    DelayTime = common.DelayTime,
+                    ElseScenesId = common.ElseScenesId
+                };
+                //common.ScenesId = getSceneIdData.NewScenesId;
+                //娣诲姞鏂版垚鍛� 杩斿洖缁撴灉
+                var addSceneMemberResponseAllData = await ZigBee.Device.Scene.AddSceneMemberAsync(addSceneMemberData);
+                if (addSceneMemberResponseAllData == null || addSceneMemberResponseAllData.addSceneMemberResponseData == null)
+                {
+                    continue;
+                }
+                var addSceneMemberResponseData = addSceneMemberResponseAllData.addSceneMemberResponseData;
+                if (addSceneMemberResponseData == null && addSceneMemberResponseData.Result != 1)
+                {
+                    result = false;
+                }
+            }
+            //鍔犲叆鎴愬姛
+            if (result)
+            {
+                //iconPathType=0 鐩存帴浼犲�硷紝 iconPathType=1鍜宨conPathType=2闇�瑕佹嫾鎺ヤ綇瀹呰矾寰�
+                var fullPath = sceneIconPath;
+                if (iconPathType == 1 || iconPathType == 2)
+                {
+                    Common.Room.CurrentRoom.MoveBackGroundIamageFileToDirectory(sceneIconPath, $"{Config.Instance.FullPath}/{sceneIconPath}");
+                    fullPath = $"{Config.Instance.FullPath}/{sceneIconPath}";
+                }
+                var sceneUI = new SceneUI
+                {
+                    Name = sceneName,
+                    Id = getSceneIdData.NewScenesId,
+                    IconPath = fullPath,
+                    IconPathType = iconPathType,
+                    AddSceneMemberDataList= commons
+                };
+                SceneUIList.Add(sceneUI);
+                SceneUIFilePathList.Add(sceneUI.FileName);
+                sceneUI.Save();
+                Save();
+                HdlAutoBackupLogic.AddOrEditorFile(sceneUI.FileName);
+                return 1;
+            }
+            return 0;
+        }
 
-			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;
-			}
+        /// <summary>
+        /// 娣诲姞鍦烘櫙
+        /// </summary>
+        /// <param name="scene">Scene.</param>
+        public void AddScene(SceneUI scene)
+        {
+            var sceneUI = new SceneUI
+            {
+                Name = scene.Name,
+                Id = scene.Id,
+                IconPath = scene.IconPath,
+                IconPathType = scene.IconPathType,
+                AddSceneMemberDataList = scene.AddSceneMemberDataList
+            };
+            SceneUIList.Add(sceneUI);
+            SceneUIFilePathList.Add(sceneUI.FileName);
+            sceneUI.Save();
+            Save();
+        }
 
-			var listSortRoom = new List<Room>();
-			for (int i = 0; i < listRoomSort.Count; i++)
-			{
-				if (dicRoom.ContainsKey(listRoomSort[i]) == true)
-				{
-					listSortRoom.Add(dicRoom[listRoomSort[i]]);
-				}
-			}
+        #endregion
 
-			//淇濆瓨椤哄簭
-			UserCenterLogic.SaveFileContent(fullName, dicAllSort);
-			return listSortRoom;
-		}
+        #region 鈼� 璁惧鏄惁鏀惰棌______________________
 
-		/// <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);
-			}
+        /// <summary>
+        /// 鏄惁鏄敹钘忚澶�
+        /// </summary>
+        /// <param name="room"></param>
+        /// <param name="filePath"></param>
+        /// <returns></returns>
+        public bool IsCollectInRoom(Room room,string filePath)
+        {
+            if(room.IsLove)
+            {
+                return true;
+            }
+            if (GetLoveRoom().DeviceUIFilePathList.Find((obj) => obj == filePath) == null)
+            {
+                return false;
+            }
+            return true;
+        }
+        #endregion
 
-			//淇濆瓨椤哄簭
-			dicAllSort[i_floorKeys] = listSort;
-			UserCenterLogic.SaveFileContent(fullName, dicAllSort);
-			dicAllSort.Clear();
-		}
+        #region 鈼� 淇敼鍦烘櫙________________________
 
-		/// <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);
-				}
-			}
+        /// <summary>
+        /// 淇敼鍦烘櫙璁惧 0澶辫触 1鎴愬姛
+        /// </summary>
+        /// <returns>The scene.</returns>
+        /// <param name="sceneUI">Scene user interface.</param>
+        /// <param name="sceneRemoveMemberData">Scene remove member data.</param>
+        /// <param name="addCommons">Add commons.</param>
+        public async System.Threading.Tasks.Task<int> ModifyScene(SceneUI sceneUI, Scene.SceneRemoveMemberData sceneRemoveMemberData, List<Scene.AddSceneMemberData> addCommons)
+        {
+            if (AllRoomSceneUIList.Find(s => s.Name == sceneUI.Name) == null)
+            {
+                return 0;
+            }
 
-			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]];
-				}
-			}
+            bool result = true;
+            //绉婚櫎鎴愬憳 杩斿洖缁撴灉
+            var removeSceneMemberResponseAllData = await ZigBee.Device.Scene.RemoveSceneMemberAsync(sceneRemoveMemberData);
+            if (removeSceneMemberResponseAllData == null || removeSceneMemberResponseAllData.removeSceneMemberResponseData == null)
+            {
+                return 0;
+            }
+            var removeSceneMemberResponseData = removeSceneMemberResponseAllData.removeSceneMemberResponseData;
+            if (removeSceneMemberResponseData == null)
+            {
+                return 0;
+            }
+            if (removeSceneMemberResponseData.Result != 0)
+            {
+                result = false;
+            }
+            //娣诲姞
+            foreach (var addCommon in addCommons)
+            {
+                //娣诲姞鏂版垚鍛�
+                var addSceneMemberData = new ZigBee.Device.Scene.AddSceneMemberData
+                {
+                    DeviceAddr = addCommon.DeviceAddr,
+                    Type = addCommon.Type,
+                    Epoint = addCommon.Epoint,
+                    ScenesId = sceneUI.Id,
+                    TaskList = addCommon.TaskList,
+                    DelayTime = addCommon.DelayTime,
+                    ElseScenesId = addCommon.ElseScenesId
+                };
+                //娣诲姞鏂版垚鍛� 杩斿洖缁撴灉
+                var addSceneMemberResponseAllData = await ZigBee.Device.Scene.AddSceneMemberAsync(addSceneMemberData);
+                if (addSceneMemberResponseAllData == null || addSceneMemberResponseAllData.addSceneMemberResponseData == null)
+                {
+                    result = false;
+                    System.Console.WriteLine("娣诲姞鍦烘櫙澶辫触");
+                    continue;
+                }
+                var addSceneMemberResponseData = addSceneMemberResponseAllData.addSceneMemberResponseData;
+                if (addSceneMemberResponseData == null && addSceneMemberResponseData.Result != 1)
+                {
+                    result = false;
+                }
+            }
+            //鍔犲叆鎴愬姛
+            if (result)
+            {
+                sceneUI.AddSceneMemberDataList = addCommons;
+                sceneUI.Save();
+                return 1;
+            }
+            return 0;
+        }
 
-			//淇濆瓨椤哄簭
-			UserCenterLogic.SaveFileContent(fullName, listFloorSort);
-			return dic;
-		}
+        #endregion
 
-		/// <summary>
-		/// 淇濆瓨妤煎眰鐨勯『搴�
-		/// </summary>
-		/// <param name="listSort">妤煎眰鐨勪富閿�</param>
-		public void SaveFloorSort(List<string> listSort)
-		{
-			string fullName = UserCenterLogic.CombinePath(DirNameResourse.LocalMemoryDirectory, DirNameResourse.FloorSortFile);
-			//淇濆瓨椤哄簭
-			UserCenterLogic.SaveFileContent(fullName, listSort);
-		}
+        #region 鈼� 鍒犻櫎鍦烘櫙________________________
 
-		#endregion
+        /// <summary>
+        /// 绉婚櫎鍦烘櫙--璇ヤ粎杩涜浜嗗鏈湴鍦烘櫙鏁版嵁鐨勫垹闄�
+        /// </summary>
+        /// <param name="sceneUI">Scene user interface.</param>
+        public void RemoveScene(SceneUI sceneUI)
+        {
+            if(Global.IsExistsByHomeId(sceneUI.FileName)==false)
+            {
+                return;
+            }
+            SceneUIList.Remove(sceneUI);
+            SceneUIFilePathList.Remove(sceneUI.FileName);
+            Save();
+            Global.DeleteFilebyHomeId(sceneUI.FileName);
+            HdlAutoBackupLogic.DeleteFile(sceneUI.FileName);
+            HdlAutoBackupLogic.AddOrEditorFile(FileName);
+        }
 
-		#region 鈼� 鍏嬮殕鎴块棿瀵硅薄_____________________
+        #endregion
 
-		/// <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;
+        #region 鈼� 鑾峰彇鍦烘櫙________________________
 
-			return newRoom;
-		}
+        /// <summary>
+        /// 閫氳繃鍦烘櫙id鑾峰彇鍦烘櫙
+        /// </summary>
+        /// <returns>The scene UIB y scene identifier.</returns>
+        /// <param name="sceneId">Scene identifier.</param>
+        public SceneUI GetSceneUIBySceneId(int sceneId)
+        {
+            foreach (var r in Lists)
+            {
+                foreach (var sceneUI in r.SceneUIList)
+                {
+                    if (sceneUI.Id == sceneId)
+                    {
+                        return sceneUI;
+                    }
+                }
+            }
+            return null;
+        }
 
-		#endregion
+        #endregion
 
-		#region 鈼� 妤煎眰___________________________
+        #region 鈼� 鍒锋柊鍦烘櫙_________________________
 
-		/// <summary>
-		/// 鑾峰彇妤煎眰鍚嶇О
-		/// </summary>
-		/// <param name="floorId"></param>
-		/// <returns></returns>
-		public string GetFloorNameById(string floorId)
-		{
-			if (Config.Instance.Home.FloorDics.Count == 0)
-			{
-				return null;
-			}
+        /// <summary>
+        /// 鍒锋柊鎴块棿鐨勫満鏅垪琛�
+        /// </summary>
+        public async System.Threading.Tasks.Task<bool> RefreshSceneUIList()
+        {
+            return false;
+            //System.Console.WriteLine($"寮�濮嬭姹傜綉鍏冲満鏅�****{DateTime.Now.ToString("yyMMdd hhmmss fff")}*****");
+            //bool result = true;
+            //var sceneList = await ZigBee.Device.Scene.GetSceneListAsync();
+            //System.Console.WriteLine($"缁撴潫璇锋眰缃戝叧鍦烘櫙****{DateTime.Now.ToString("yyMMdd hhmmss fff")}*****");
+            //if (sceneList == null)
+            //{
+            //    return false;
+            //}
+            //List<int> sceneIDList = new List<int> { };
+            //System.Console.WriteLine($"寮�濮嬫湰鍦板満鏅�****{DateTime.Now.ToString("yyMMdd hhmmss fff")}*****");
+            //foreach (var scene in sceneList)
+            //{
+            //    if (scene == null)
+            //    {
+            //        continue;
+            //    }
+            //    sceneIDList.Add(scene.ScenesId);
+            //}
+            //foreach(var r in Lists)
+            //{
+            //    if(r.SceneUIList==null || r.SceneUIList.Count==0)
+            //    {
+            //        continue;
+            //    }
+            //    foreach(var rScene in r.SceneUIList)
+            //    {
+            //        if(rScene==null)
+            //        {
+            //            continue;
+            //        }
+            //        //var scene = sceneList.Find((obj) => rScene.ScenesId == obj.ScenesId);
+            //        if(sceneIDList.Contains(rScene.ScenesId)==false)
+            //        {
+            //            var removeResult = r.SceneUIList.Remove(rScene);
+            //            r.Save();
+            //            if (removeResult == false)
+            //            {
+            //                result = false;
+            //            }
+            //        }
+            //    }
+            //}
+            //System.Console.WriteLine($"缁撴潫鏈湴鍦烘櫙****{DateTime.Now.ToString("yyMMdd hhmmss fff")}*****");
+            //return result;
+        }
 
-			foreach (var floor in Config.Instance.Home.FloorDics)
-			{
-				if (floorId == floor.Key)
-				{
-					return floor.Value;
-				}
-			}
-			return null;
-		}
+        #endregion
 
-		#endregion
+        #region 鈼� 淇濆瓨____________________________
 
-	}
+        /// <summary>
+        /// 淇濆瓨
+        /// </summary>
+        /// <param name="autoBackup">鏄惁鑷姩澶囦唤锛岄粯璁rue</param>
+        public void Save(bool autoBackup = true)
+        {
+            //淇濆瓨鎴块棿淇℃伅
+            Global.WriteFileByBytesByHomeId(FileName, System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(this)));
+            if (autoBackup == true)
+            {
+                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;
+        }
+
+        #endregion
+       
+    }
 }

--
Gitblit v1.8.0