gxc
2019-12-25 944b87b6bcccb095cd73f13f4410fb20faf48f74
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>
@@ -302,6 +336,19 @@
                }
            }
            Config.Instance.Home.InitFloor();
            RefreshRoomListView();
        }
        /// <summary>
        /// 刷新房间视图列表
        /// </summary>
        public static void RefreshRoomListView()
        {
            Application.RunOnMainThread(() =>
            {
                Phone.Device.Room.RoomManagement.Instance.Show();
            });
        }
        /// <summary>
@@ -604,6 +651,10 @@
        /// <returns></returns>
        public List<Room> GetRoomsByFloorId(string id)
        {
            if (Config.Instance.Home.FloorDics.Count == 0)
            {
                return Lists;
            }
            return Lists.FindAll((obj) => obj.FloorId == id);
        }
        /// <summary>
@@ -611,12 +662,12 @@
        /// </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);
                }
@@ -631,6 +682,10 @@
        /// <returns></returns>
        public  List<Room> GetRoomsByFloorIdAppendLoveRoom(string id)
        {
            if (Config.Instance.Home.FloorDics.Count == 0)
            {
                return Lists;
            }
            var r= Lists.FindAll((obj) => obj.FloorId == id);
            r.Insert(0, GetLoveRoom());
            return r;
@@ -770,9 +825,8 @@
        public void AddDevice(string deviceUIFilePath)
        {
            if (string.IsNullOrEmpty(deviceUIFilePath))
             {
                 return;
            {
                return;
            }
            var deviceUI = Common.LocalDevice.Current.GetDeviceUI(deviceUIFilePath);
            if (null == deviceUI.CommonDevice)
@@ -951,35 +1005,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
@@ -1239,6 +1292,7 @@
            }
            return null;
        }
        /// <summary>
        /// 获取该楼层所有场景
        /// </summary>
@@ -1254,6 +1308,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 ◆ 刷新场景_________________________