From c6b35c3138b944830b5336bf610f918154dd47c7 Mon Sep 17 00:00:00 2001
From: 黄学彪 <hxb@hdlchina.com.cn>
Date: 星期六, 12 十月 2019 15:45:10 +0800
Subject: [PATCH] 合并门锁,完成住宅管理

---
 ZigbeeApp/Shared/Common/Room.cs |  120 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 113 insertions(+), 7 deletions(-)

diff --git a/ZigbeeApp/Shared/Common/Room.cs b/ZigbeeApp/Shared/Common/Room.cs
index e3440a1..282f05b 100755
--- a/ZigbeeApp/Shared/Common/Room.cs
+++ b/ZigbeeApp/Shared/Common/Room.cs
@@ -36,14 +36,24 @@
         /// 妤煎眰Id
         /// 鏂板鏃朵娇鐢℅uid
         /// </summary>
-        public string FloorId = string.Empty;
+        public string FloorId = "Floor1";
+        /// <summary>
+        /// 妤煎眰鍚嶇О
+        /// </summary>
+        public string FloorName
+        {
+            get
+            {
+               return 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 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;
@@ -321,6 +344,15 @@
         #endregion
 
         #region 鈼� 鑾峰彇鎴块棿________________________
+
+        /// <summary>
+        /// 鑾峰彇鍠滅埍鎴块棿
+        /// </summary>
+        /// <returns></returns>
+        public static Room GetLoveRoom()
+        {
+            return CurrentRoom.GetRoomById(LoveRoomId);
+        }
 
         /// <summary>
         /// 閫氳繃璺緞鑾峰彇鎴块棿
@@ -786,6 +818,28 @@
             }
         }
 
+        /// <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 鈼� 娣诲姞鍦烘櫙_________________________
@@ -895,6 +949,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 +1197,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 +1313,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 +1323,33 @@
         }
 
         #endregion
+
+        #region 鈼� 妤煎眰___________________________
+
+        /// <summary>
+        /// 鑾峰彇妤煎眰鍚嶇О
+        /// </summary>
+        /// <param name="floorId"></param>
+        /// <returns></returns>
+        public string GetFloorNameById(string floorId)
+        {
+            if (Config.Instance.Home.FloorDics.Count == 0)
+            {
+                return null;
+            }
+
+            foreach (var floor in Config.Instance.Home.FloorDics)
+            {
+                if (floorId == floor.Key)
+                {
+                    return floor.Value;
+                }
+            }
+            return null;
+        }
+
+        #endregion
+
+       
     }
 }

--
Gitblit v1.8.0