黄学彪
2019-12-20 23fb45dd846ed8b62304c408c6bbe64265d4ac8b
ZigbeeApp/Shared/Common/Room.cs
@@ -69,12 +69,20 @@
        /// <summary>
        /// 温度传感器(设备主键)
        /// </summary>
        /// </summary>
        public string TemperatrueDevice = string.Empty;
        /// <summary>
        /// 湿度传感器(设备主键)
        /// </summary>
        public string HumidityDevice = string.Empty;
        /// <summary>
        /// 温度
        /// </summary>
        public double Temperatrue;
        /// <summary>
        /// 湿度
        /// </summary>
        public double Humidity;
        /// <summary>
        /// 当前选择的房间
@@ -201,6 +209,32 @@
                return sceneList;
            }
        }
        /// <summary>
        /// 获取所有房间的所有场景路径
        /// </summary>
        /// <value>All room scene UIL ist.</value>
        [Newtonsoft.Json.JsonIgnore]
        public  List<string> AllRoomSceneUIFilepathList
        {
            get
            {
                var pathList = new List<string> { };
                foreach (var r in Lists)
                {
                    if (r.SceneUIFilePathList.Count == 0)
                    {
                        continue;
                    }
                    foreach (var path in r.SceneUIFilePathList)
                    {
                        pathList.Add(path);
                    }
                }
                return pathList;
            }
        }
        /// <summary>
        /// 场景列表---不再序列化
        /// </summary>
@@ -978,35 +1012,34 @@
        }
        /// <summary>
        /// 获取该楼层的场景
        /// 获取未分配区域设备
        /// </summary>
        /// <param name="floorId"></param>
        /// <returns></returns>
        public List<SceneUI> GetSceneUIsByFloorId(string floorId)
        public List<DeviceUI> GetUnalloctedDeviceUIs()
        {
            var rooms = GetRoomsByFloorId(floorId);
            if (rooms == null)
            List<DeviceUI> deviceUIs = new List<DeviceUI> { };
            var dList = AllRoomDeviceUIList;
            var commonDeviceList = Common.LocalDevice.Current.listAllDevice;
            if (dList.Count == 0)
            {
                return null;
            }
            var sceneList = new List<SceneUI> { };
            foreach (var r in rooms)
            foreach (var device in commonDeviceList)
            {
                if (r.SceneUIList.Count == 0)
                if (dList.Find((obj) => obj.CommonDevice == device) == null)
                {
                    continue;
                }
                foreach (var sceneUI in r.SceneUIList)
                {
                    if (sceneUI == null)
                    {
                        continue;
                    }
                    sceneList.Add(sceneUI);
                    deviceUIs.Add(Common.LocalDevice.Current.GetDeviceUI(device));
                }
            }
            return sceneList;
            if (deviceUIs.Count == 0)
            {
                return null;
            }
            return deviceUIs;
        }
        //public List<DeviceUI> GetUnalloctedDeviceUITypes
        #endregion
@@ -1266,6 +1299,7 @@
            }
            return null;
        }
        /// <summary>
        /// 获取该楼层所有场景
        /// </summary>
@@ -1281,6 +1315,74 @@
            }
            return sceneUIs;
        }
        /// <summary>
        /// 获取该楼层的场景
        /// </summary>
        /// <param name="floorId"></param>
        /// <returns></returns>
        public List<SceneUI> GetSceneUIsByFloorId(string floorId)
        {
            var rooms = GetRoomsByFloorId(floorId);
            if (rooms == null)
            {
                return null;
            }
            var sceneList = new List<SceneUI> { };
            foreach (var r in rooms)
            {
                if (r.SceneUIList.Count == 0)
                {
                    continue;
                }
                foreach (var sceneUI in r.SceneUIList)
                {
                    if (sceneUI == null)
                    {
                        continue;
                    }
                    sceneList.Add(sceneUI);
                }
            }
            return sceneList;
        }
        /// <summary>
        /// 获取未分配区域场景
        /// </summary>
        /// <returns></returns>
        public List<SceneUI> GetUnalloctedScenes()
        {
            List<SceneUI> sceneUIs = new List<SceneUI> { };
            var sList = AllRoomSceneUIFilepathList;
            List<string> sfile = new List<string> { };
            foreach (var path in Global.FileListByHomeId())
            {
                if (path.StartsWith("Scene_", StringComparison.Ordinal))
                {
                    sfile.Add(path);
                }
            }
            foreach (var path in sfile)
            {
                if (sList.Find((obj) => obj == path) == null)
                {
                    var jsonInfo = Encoding.UTF8.GetString(Global.ReadFileByHomeId(path));
                    var tempSceneUI = Newtonsoft.Json.JsonConvert.DeserializeObject<SceneUI>(jsonInfo);
                    if (tempSceneUI != null)
                    {
                        sceneUIs.Add(tempSceneUI);
                    }
                }
            }
            if (sceneUIs.Count == 0)
            {
                return null;
            }
            return sceneUIs;
        }
        #endregion
        #region ◆ 刷新场景_________________________