黄学彪
2020-01-10 9064c76e6a795ae735cac52d98bed178a27c2a87
ZigbeeApp/Shared/Common/Room.cs
@@ -98,6 +98,7 @@
            {
                if (m_CurrentRoom == null && Lists.Count > 0)
                {
                    if (m_CurrentRoom == null) { m_CurrentRoom = Lists[0]; }
                    return Lists[0];
                }
                return m_CurrentRoom;
@@ -193,6 +194,10 @@
                var sceneList = new List<SceneUI> { };
                foreach (var r in Shared.Common.Room.Lists)
                {
                    if(r.IsLove)
                    {
                        continue;
                    }
                    if (r.SceneUIList.Count == 0)
                    {
                        continue;
@@ -222,6 +227,11 @@
                var pathList = new List<string> { };
                foreach (var r in Lists)
                {
                    if(r.IsLove)
                    {
                        continue;
                    }
                    if (r.SceneUIFilePathList.Count == 0)
                    {
                        continue;
@@ -263,7 +273,7 @@
                for (int i = 0; i < Lists.Count; i++)
                {
                    var room = Lists[i];
                    if (room.IsSharedRoom)
                    if (room.IsSharedRoom || room.IsLove)
                    {
                        continue;
                    }
@@ -335,6 +345,7 @@
                }
            }
            Config.Instance.Home.InitFloor();
            CurrentRoom.RefreshRoomListView();
@@ -356,7 +367,6 @@
        /// </summary>
        public static void RefreshAllRoomByLocation()
        {
            Lists.Clear();
            var homeTemp = Config.Instance.Home;
            homeTemp.RoomFilePathList.Clear();
@@ -367,7 +377,7 @@
            if (listFile.Contains(fRoom) == true)
            {
                listFile.Remove(fRoom);
                homeTemp.AddRoomListFilePath(fRoom);
                homeTemp.RoomFilePathList.Add(fRoom);
            }
            var listRoomFile = new List<string>();
@@ -375,7 +385,7 @@
            {
                if (fileName.StartsWith("Room_"))
                {
                    homeTemp.AddRoomListFilePath(fileName);
                    homeTemp.RoomFilePathList.Add(fileName);
                    listRoomFile.Add(fileName);
                }
            }
@@ -696,11 +706,24 @@
        /// <returns></returns>
        public List<Room> GetRoomsByFloorId(string id)
        {
            if (Config.Instance.Home.FloorDics.Count == 0)
            try
            {
                return Lists;
                if (Lists == null || Lists.Count == 0 || Lists.Count == 1)
                {
                    return null;
                }
                if (Config.Instance.Home.FloorDics.Count == 0)
                {
                    return Lists;
                }
                return Lists.FindAll((obj) => obj.FloorId == id);
            }
            return Lists.FindAll((obj) => obj.FloorId == id);
            catch(Exception ex)
            {
                System.Console.WriteLine(ex.Message);
                return null;
            }
        }
        /// <summary>
        /// 获取当前楼层的房间名称
@@ -904,8 +927,6 @@
                //保存到本地
                Save();
                //添加自动备份
                HdlAutoBackupLogic.AddOrEditorFile(FileName);
                if (saveRealRoom == true && LocalDevice.Current.GetDevicesCountByMac(device.DeviceAddr) == 1)
                {
                    //如果只有一个回路,则修改真实物理设备的房间
@@ -1185,17 +1206,8 @@
        /// <param name="scene">Scene.</param>
        public void AddScene(SceneUI scene)
        {
            //var sceneUI = new SceneUI
            //{
            //    Name = scene.Name,
            //    Id = scene.Id,
            //    IconPath = scene.IconPath,
            //    IconPathType = scene.IconPathType,
            //    AddSceneMemberDataList = scene.AddSceneMemberDataList
            //};
            SceneUIList.Add(scene);
            SceneUIFilePathList.Add(scene.FileName);
            scene.Save();
            Save();
        }
@@ -1205,10 +1217,13 @@
        /// <param name="scene"></param>
        public void DeleteScene(SceneUI scene)
        {
            //scene.IsCollected = false;
            scene.Save();
            SceneUIList.Remove(scene);
            SceneUIFilePathList.Remove(scene.FileName);
            var curScene = SceneUIList.Find((obj) => obj.Id == scene.Id);
            if (curScene == null)
            {
                return;
            }
            SceneUIList.Remove(curScene);
            SceneUIFilePathList.Remove(curScene.FileName);
            Save();
        }
@@ -1297,9 +1312,61 @@
            {
                sceneUI.AddSceneMemberDataList = addCommons;
                sceneUI.Save();
                if (IsLove == false)
                {
                    var curScene = Common.Room.CurrentRoom.GetLoveRoom().SceneUIList.Find((obj) => obj.Id == sceneUI.Id);
                    if (curScene != null)
                    {
                        curScene.Name = sceneUI.Name;
                        curScene.IconPath = sceneUI.IconPath;
                        curScene.IconPathType = sceneUI.IconPathType;
                        curScene.AddSceneMemberDataList = sceneUI.AddSceneMemberDataList;
                        curScene.SceneDelayTime = sceneUI.SceneDelayTime;
                        curScene.Save(false);
                        Common.Room.CurrentRoom.GetLoveRoom().Save();
                    }
                }
                return 1;
            }
            return 0;
        }
        /// <summary>
        /// 设置、同步延时时间
        /// </summary>
        /// <param name="scene"></param>
        public void ModifySceneDelayTime(SceneUI scene)
        {
            if (IsLove)
            {
                foreach (var r in Lists)
                {
                    if (r.IsLove || r.SceneUIList.Count == 0)
                    {
                        continue;
                    }
                    foreach (var sce in r.SceneUIList)
                    {
                        if (sce.Id == scene.Id)
                        {
                            sce.SceneDelayTime = scene.SceneDelayTime;
                            sce.Save(false);
                            r.Save(false);
                            break;
                        }
                    }
                }
            }
            else
            {
                var curScene = Common.Room.CurrentRoom.GetLoveRoom().SceneUIList.Find((obj) => obj.Id == scene.Id);
                if (curScene != null)
                {
                    curScene.SceneDelayTime = scene.SceneDelayTime;
                    curScene.Save(false);
                    Common.Room.CurrentRoom.GetLoveRoom().Save(false);
                }
            }
        }
        #endregion
@@ -1316,9 +1383,16 @@
            {
                return;
            }
            SceneUIList.Remove(sceneUI);
            SceneUIFilePathList.Remove(sceneUI.FileName);
            Save();
            if (sceneUI.IconPathType == 1 || sceneUI.IconPathType == 2)
            {
                if (Global.IsExistsByHomeId(sceneUI.IconPath))
                {
                    Global.DeleteFilebyHomeId(sceneUI.IconPath);
                    HdlAutoBackupLogic.DeleteFile(sceneUI.IconPath);
                }
            }
            if (IsLove == false)
            {
                if (CurrentRoom.GetLoveRoom().SceneUIList.Find((obj) => obj.Id == sceneUI.Id) != null)
@@ -1326,6 +1400,11 @@
                    CurrentRoom.GetLoveRoom().DeleteScene(sceneUI);
                }
            }
            SceneUIList.Remove(sceneUI);
            SceneUIFilePathList.Remove(sceneUI.FileName);
            Save();
            Global.DeleteFilebyHomeId(sceneUI.FileName);
            HdlAutoBackupLogic.DeleteFile(sceneUI.FileName);
        }