From a4d525d08da7b6fb985b0069c539c11b06306a9b Mon Sep 17 00:00:00 2001 From: WJC <wjc@hdlchina.com.cn> Date: 星期三, 13 十一月 2019 16:28:34 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/dev-tzy' into dev-wjc --- ZigbeeApp/Shared/Common/Room.cs | 544 +++++++++++++++++++++++++++-------------------------- 1 files changed, 278 insertions(+), 266 deletions(-) diff --git a/ZigbeeApp/Shared/Common/Room.cs b/ZigbeeApp/Shared/Common/Room.cs old mode 100755 new mode 100644 index c7a830e..00f950b --- 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,19 +67,35 @@ /// </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; + /// <summary> + /// 褰撳墠閫夋嫨鐨勬埧闂� + /// </summary> + private static Room m_CurrentRoom = null; /// <summary> /// 褰撳墠閫夋嫨鐨勬埧闂� /// </summary> - public static Room CurrentRoom; + [Newtonsoft.Json.JsonIgnore] + public static Room CurrentRoom + { + get + { + if (m_CurrentRoom == null && Lists.Count > 0) + { + return Lists[0]; + } + return m_CurrentRoom; + } + set { m_CurrentRoom = value; } + } /// <summary> /// 鎴块棿閲屾墍鏈夌殑璁惧鍒楄〃 @@ -94,7 +110,7 @@ /// <summary> /// 鍠滅埍鎴块棿id /// </summary> - public const string LoveRoomId= "Favorite"; + public const string LoveRoomId = "Favorite"; /// <summary> /// 鏄惁鏄粯璁ゅ枩鐖辨埧闂� @@ -217,7 +233,7 @@ { List<DeviceUI> deviceList = new List<DeviceUI>(); for (int i = 0; i < Lists.Count; i++) - { + { var room = Lists[i]; if (room.IsSharedRoom) { @@ -266,10 +282,10 @@ /// </summary> public static void InitAllRoom() { - if (CanInitAllRoom == false) - { - return; - } + //if (CanInitAllRoom == false) + //{ + // return; + //} Lists.Clear(); if (Config.Instance.Home.RoomFilePathList.Contains("Room_Favorite.json") == false) { @@ -296,35 +312,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 +445,7 @@ //璁惧锛坉eviceUI锛� beforeRoom.DeviceUIList.Clear(); foreach (var deviceFilePath in beforeRoom.DeviceUIFilePathList) - { + { beforeRoom.DeviceUIList.Add(Common.LocalDevice.Current.GetDeviceUI(deviceFilePath)); } //鍦烘櫙(SceneUI) @@ -480,7 +496,7 @@ } return nowRoom; } - catch(Exception ex) + catch (Exception ex) { return null; } @@ -493,6 +509,10 @@ /// <param name="roomId">鎴块棿ID</param> public Room GetRoomById(string roomId) { + if (string.IsNullOrEmpty(roomId)) + { + return null; + } return Lists.Find((obj) => obj.Id == roomId); } @@ -514,15 +534,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,11 +554,8 @@ /// <param name="device">璁惧瀵硅薄</param> public Room GetRoomByDevice(CommonDevice device) { - var deviceUI = new DeviceUI { }; - deviceUI.DeviceAddr = device.DeviceAddr; - deviceUI.DeviceEpoint = device.DeviceEpoint; - - return Lists.Find((obj) => obj.IsLove == false && obj.DeviceUIFilePathList.Contains(deviceUI.FileName)); + string deviceFile = device.FilePath; + return Lists.Find((obj) => obj.IsLove == false && obj.DeviceUIFilePathList.Contains(deviceFile)); } /// <summary> @@ -581,21 +598,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 +625,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,8 +636,12 @@ /// 鑾峰彇褰撳墠妤煎眰鐨勬埧闂�(鎷兼帴浜嗐�愬父鐢ㄣ�戝湪绗竴浣�) /// </summary> /// <returns></returns> - public List<Room> GetRoomsByCurrentFloorIdAppendLoveRoom() + public List<Room> GetRoomsByCurrentFloorIdAppendLoveRoom() { + if(Config.Instance.Home.FloorDics.Count==0) + { + return Lists; + } var r = Lists.FindAll((obj) => obj.FloorId == Config.Instance.Home.CurrentFloorId); r.Insert(0, GetLoveRoom()); return r; @@ -647,12 +668,12 @@ //娣诲姞鍒版柊鐨勬埧闂� var room = this.GetRoomById(roomId); - if (room != null) - { - room.AddDevice(device); + if (room != null) + { + room.AddDevice(device); } - } - + } + /// <summary> /// 鎴块棿鍚嶅瓧鏄惁鏈変慨鏀� /// </summary> @@ -662,9 +683,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 +742,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); @@ -747,9 +768,8 @@ { return; } - var jsonInfo = Encoding.UTF8.GetString(Global.ReadFileByHomeId(deviceUIFilePath)); - var deviceUI = Newtonsoft.Json.JsonConvert.DeserializeObject<DeviceUI>(jsonInfo); - if (null == deviceUI || null == deviceUI.CommonDevice) + var deviceUI = Common.LocalDevice.Current.GetDeviceUI(deviceUIFilePath); + if (null == deviceUI.CommonDevice) { //褰撳墠瀵硅薄鏁版嵁鏃犳晥 return; @@ -779,7 +799,7 @@ //娣诲姞鑷姩澶囦唤 HdlAutoBackupLogic.AddOrEditorFile(device.FilePath); - DeviceUI deviceUI = Common.LocalDevice.Current.GetDeviceUI(device); + var deviceUI = Common.LocalDevice.Current.GetDeviceUI(device); if (DeviceUIFilePathList.Contains(deviceUI.FileName) == false) { DeviceUIFilePathList.Add(deviceUI.FileName); @@ -802,11 +822,10 @@ public void DeleteDevice(string deviceUIFilePath) { if (deviceUIFilePath == null) return; - if (DeviceUIFilePathList.Contains(deviceUIFilePath) && Global.IsExistsByHomeId(deviceUIFilePath)) + if (DeviceUIFilePathList.Contains(deviceUIFilePath)) { DeviceUIFilePathList.Remove(deviceUIFilePath); DeviceUIList.RemoveAll((obj) => obj.FileName == deviceUIFilePath); - HdlAutoBackupLogic.DeleteFile(deviceUIFilePath); Save(); } } @@ -821,24 +840,21 @@ { return; } - DeviceUI deviceUI = new DeviceUI(); - deviceUI.DeviceAddr = device.DeviceAddr; - deviceUI.DeviceEpoint = device.DeviceEpoint; - //鏍规嵁璁惧锛岃幏鍙栨墍鍦ㄧ殑鎴块棿 var room = this.GetRoomByDevice(device); if (room == null) { return; } + string deviceFile = device.FilePath; //绉婚櫎缂撳瓨 - if (room.DeviceUIFilePathList.Contains(deviceUI.FileName) == false) + if (room.DeviceUIFilePathList.Contains(deviceFile) == false) { return; } - room.DeviceUIFilePathList.Remove(deviceUI.FileName); + room.DeviceUIFilePathList.Remove(deviceFile); - room.DeviceUIList.RemoveAll((obj) => obj.FileName == deviceUI.FileName); + room.DeviceUIList.RemoveAll((obj) => obj.FileName == deviceFile); room.Save(); //鏇存敼鑷姩澶囦唤 HdlAutoBackupLogic.AddOrEditorFile(room.FileName); @@ -858,9 +874,9 @@ return Common.LocalDevice.Current.GetDeviceUI(device); } - /// <summary> - /// 鑾峰彇褰撳墠鎴块棿涓嬬殑鍏ㄩ儴璁惧 - /// </summary> + /// <summary> + /// 鑾峰彇褰撳墠鎴块棿涓嬬殑鍏ㄩ儴璁惧 + /// </summary> /// <returns></returns> public List<CommonDevice> GetRoomListDevice() { @@ -873,11 +889,7 @@ } listDevice.Add(device.CommonDevice); } - if (listDevice.Count == 0) - { - return listDevice; - } - return Common.LocalDevice.Current.SortDevice(listDevice); + return listDevice; } /// <summary> @@ -908,7 +920,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 +929,7 @@ { continue; } - if(deviceUI.CommonDevice.Type!=deviceType) + if (deviceUI.CommonDevice.Type != deviceType) { continue; } @@ -975,14 +987,14 @@ 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) { return -1; } } - + var getSceneIdAllData = await ZigBee.Device.Scene.GetSceneNewIdAsync(sceneName); if (getSceneIdAllData == null || getSceneIdAllData.getSceneIdData == null) { @@ -1002,7 +1014,7 @@ ScenesId = getSceneIdData.NewScenesId, TaskList = common.TaskList, DelayTime = common.DelayTime, - MemberNumber=common.MemberNumber, + MemberNumber = common.MemberNumber, ElseScenesId = common.ElseScenesId }; //common.ScenesId = getSceneIdData.NewScenesId; @@ -1034,7 +1046,7 @@ Id = getSceneIdData.NewScenesId, IconPath = fullPath, IconPathType = iconPathType, - AddSceneMemberDataList= commons + AddSceneMemberDataList = commons }; SceneUIList.Add(sceneUI); SceneUIFilePathList.Add(sceneUI.FileName); @@ -1089,9 +1101,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; } @@ -1148,7 +1160,7 @@ TaskList = addCommon.TaskList, DelayTime = addCommon.DelayTime, ElseScenesId = addCommon.ElseScenesId, - MemberNumber=addCommon.MemberNumber + MemberNumber = addCommon.MemberNumber }; //娣诲姞鏂版垚鍛� 杩斿洖缁撴灉 var addSceneMemberResponseAllData = await ZigBee.Device.Scene.AddSceneMemberAsync(addSceneMemberData); @@ -1184,7 +1196,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; } @@ -1227,8 +1239,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); } @@ -1306,168 +1318,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 + } } -- Gitblit v1.8.0