From 1f65fe366062b3f2cda6b03e1849afce6d2646f8 Mon Sep 17 00:00:00 2001 From: gxc <guoxuecheng@guoxuechengdeMacBook-Pro.local> Date: 星期四, 17 十月 2019 13:47:37 +0800 Subject: [PATCH] 2019.10.17 --- ZigbeeApp/Shared/Common/Room.cs | 201 ++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 194 insertions(+), 7 deletions(-) diff --git a/ZigbeeApp/Shared/Common/Room.cs b/ZigbeeApp/Shared/Common/Room.cs old mode 100755 new mode 100644 index e3440a1..64e0190 --- a/ZigbeeApp/Shared/Common/Room.cs +++ b/ZigbeeApp/Shared/Common/Room.cs @@ -38,12 +38,22 @@ /// </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; @@ -56,6 +66,15 @@ /// 妤煎眰--澶囩敤 /// </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> /// 褰撳墠閫夋嫨鐨勬埧闂� @@ -73,6 +92,11 @@ public readonly List<string> DeviceUIFilePathList = new List<string>(); /// <summary> + /// 鍠滅埍鎴块棿id + /// </summary> + public const string LoveRoomId= "Favorite"; + + /// <summary> /// 鏄惁鏄粯璁ゅ枩鐖辨埧闂� /// </summary> /// <value><c>true</c> if is love; otherwise, <c>false</c>.</value> @@ -81,7 +105,7 @@ { get { - return Id == "Favorite"; + return Id == LoveRoomId; } } @@ -110,8 +134,7 @@ { return new List<string> { }; } - var loveRoom = Lists[0]; - return loveRoom.DeviceUIFilePathList; + return CurrentRoom.GetLoveRoom().DeviceUIFilePathList; } } @@ -204,7 +227,7 @@ 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 = "Favorite" }; + 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; @@ -323,6 +346,15 @@ #region 鈼� 鑾峰彇鎴块棿________________________ /// <summary> + /// 鑾峰彇鍠滅埍鎴块棿 + /// </summary> + /// <returns></returns> + public Room GetLoveRoom() + { + return CurrentRoom.GetRoomById(LoveRoomId); + } + + /// <summary> /// 閫氳繃璺緞鑾峰彇鎴块棿 /// </summary> /// <returns>The room by file path.</returns> @@ -431,6 +463,16 @@ } /// <summary> + /// 鏍规嵁鎴块棿鍚嶅瓧锛岃幏鍙栨埧闂村璞� + /// </summary> + /// <returns>The room by name.</returns> + /// <param name="roomName">鎴块棿鍚�</param> + public Room GetRoomByName(string roomName) + { + return Lists.Find((obj) => obj.Name == roomName); + } + + /// <summary> /// 鏍规嵁璁惧鑾峰彇鎴块棿鍚嶅瓧(妤煎眰+鎴块棿鍚�) /// </summary> /// <returns>鎴块棿鍚�</returns> @@ -500,6 +542,55 @@ return null; } + /// <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> + /// 鑾峰彇褰撳墠妤煎眰鐨勬埧闂�(鎷兼帴浜嗐�愬父鐢ㄣ�戝湪绗竴浣�) + /// </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 @@ -670,7 +761,6 @@ #endregion #region 鈼� 鍒犻櫎璁惧_________________________ - /// <summary> /// 鍒犻櫎鍔熻兘-璁惧 /// </summary> @@ -786,6 +876,78 @@ } } + /// <summary> + /// 鑾峰彇褰撳墠鎴块棿涓嬬殑鍏ㄩ儴璁惧 + /// </summary> + /// <returns></returns> + public List<CommonDevice> GetRoomListDevice() + { + var listDevice = new List<CommonDevice>(); + foreach (var device in this.DeviceUIList) + { + if (device == null || device.CommonDevice == null) + { + continue; + } + listDevice.Add(device.CommonDevice); + } + if (listDevice.Count == 0) + { + return listDevice; + } + return Common.LocalDevice.Current.SortDevice(listDevice); + } + + /// <summary> + /// 鑾峰彇鎴块棿璁惧绫诲瀷 + /// </summary> + /// <param name="room"></param> + /// <returns></returns> + public static List<DeviceType> GetdeviceTypes(Room room) + { + List<DeviceType> typeList = new List<DeviceType> { }; + foreach (var deviceUI in room.DeviceUIList) + { + if (deviceUI == null || deviceUI.CommonDevice == null) + { + continue; + } + if (!typeList.Contains(deviceUI.CommonDevice.Type)) + { + typeList.Add(deviceUI.CommonDevice.Type); + } + } + return typeList; + } + + /// <summary> + /// 鑾峰彇璇ョ被鍨嬬殑璁惧 + /// </summary> + /// <param name="room"></param> + /// <param name="deviceType"></param> + /// <returns></returns> + public static List<DeviceUI> GetDeviceUIs(Room room ,DeviceType deviceType) + { + List<DeviceUI> typeList = new List<DeviceUI> { }; + foreach (var deviceUI in room.DeviceUIList) + { + if (deviceUI == null || deviceUI.CommonDevice == null) + { + continue; + } + if(deviceUI.CommonDevice.Type!=deviceType) + { + continue; + } + if (!typeList.Contains(deviceUI)) + { + typeList.Add(deviceUI); + } + } + return typeList; + } + + #endregion #region 鈼� 娣诲姞鍦烘櫙_________________________ @@ -895,6 +1057,28 @@ 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 鈼� 淇敼鍦烘櫙________________________ @@ -1121,7 +1305,7 @@ var dicRoom = new Dictionary<string, Common.Room>(); foreach (var room in Common.Room.Lists) { - if (room.FloorId != i_floorKeys) + if (room.FloorId != i_floorKeys || room.IsLove == true) { //涓嶆槸鍚屼竴涓ゼ灞� continue; @@ -1237,6 +1421,8 @@ //鍏嬮殕灞炴�� 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; @@ -1245,5 +1431,6 @@ } #endregion + } } -- Gitblit v1.8.0