gxc
2020-01-10 03ff92ba7d9f06583f3a292ecb2077cf01e5a5ca
ZigbeeApp/Shared/Common/Room.cs
@@ -193,6 +193,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 +226,11 @@
                var pathList = new List<string> { };
                foreach (var r in Lists)
                {
                    if(r.IsLove)
                    {
                        continue;
                    }
                    if (r.SceneUIFilePathList.Count == 0)
                    {
                        continue;
@@ -263,7 +272,7 @@
                for (int i = 0; i < Lists.Count; i++)
                {
                    var room = Lists[i];
                    if (room.IsSharedRoom)
                    if (room.IsSharedRoom || room.IsLove)
                    {
                        continue;
                    }
@@ -335,6 +344,7 @@
                }
            }
            Config.Instance.Home.InitFloor();
            CurrentRoom.RefreshRoomListView();
@@ -709,11 +719,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>
        /// 获取当前楼层的房间名称
@@ -1198,17 +1221,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();
        }
@@ -1218,10 +1232,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();
        }
@@ -1310,9 +1327,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
@@ -1329,9 +1398,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)
@@ -1339,6 +1415,11 @@
                    CurrentRoom.GetLoveRoom().DeleteScene(sceneUI);
                }
            }
            SceneUIList.Remove(sceneUI);
            SceneUIFilePathList.Remove(sceneUI.FileName);
            Save();
            Global.DeleteFilebyHomeId(sceneUI.FileName);
            HdlAutoBackupLogic.DeleteFile(sceneUI.FileName);
        }