From 03ff92ba7d9f06583f3a292ecb2077cf01e5a5ca Mon Sep 17 00:00:00 2001 From: gxc <guoxuecheng@guoxuechengdeMacBook-Pro.local> Date: 星期五, 10 一月 2020 12:00:15 +0800 Subject: [PATCH] 2019.1.10 --- ZigbeeApp/Shared/Common/Room.cs | 121 +++++++++++++++++++++++++++++++++------ 1 files changed, 101 insertions(+), 20 deletions(-) diff --git a/ZigbeeApp/Shared/Common/Room.cs b/ZigbeeApp/Shared/Common/Room.cs index df0c48c..ce9e8b9 100644 --- a/ZigbeeApp/Shared/Common/Room.cs +++ b/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); } -- Gitblit v1.8.0