From e22fdb94322e6cec38e5e4a9aec13d431a133fde Mon Sep 17 00:00:00 2001 From: 黄学彪 <hxb@hdlchina.com.cn> Date: 星期二, 28 四月 2020 16:32:35 +0800 Subject: [PATCH] 上传合并后的代码 --- ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlSceneLogic.cs | 157 +++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 118 insertions(+), 39 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlSceneLogic.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlSceneLogic.cs index ce36714..7f5755c 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlSceneLogic.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlSceneLogic.cs @@ -109,7 +109,7 @@ foreach (var sceneui in listDelete) { //鎵ц鍒犻櫎 - this.RemoveScene(sceneui); + this.DeleteLocalScene(sceneui); } return true; @@ -127,25 +127,36 @@ /// <returns></returns> public async Task<SceneUI> AddNewSceneToGateway(string sceneName, List<Scene.DeviceListData> listAdjustTarget) { - var result1 = await Scene.GetSceneNewIdAsync(sceneName); - //鍏遍�氶敊璇娴� - string error = HdlCheckLogic.Current.CheckCommonErrorCode(result1); - if (error != null) + int NewScenesId = -1; + //濡傛灉褰撳墠浣忓畢涓嶆槸铏氭嫙浣忓畢 + if (Common.Config.Instance.Home.IsVirtually == false) { - this.ShowErrorMsg(error); - return null; + var result1 = await Scene.GetSceneNewIdAsync(sceneName); + //鍏遍�氶敊璇娴� + string error = HdlCheckLogic.Current.CheckCommonErrorCode(result1); + if (error != null) + { + this.ShowErrorMsg(error); + return null; + } + if (result1 == null || result1.getSceneIdData == null) + { + //娣诲姞鍦烘櫙澶辫触 + string msg1 = Language.StringByID(R.MyInternationalizationString.AddSceneFail); + //鎷兼帴涓娿�愮綉鍏冲洖澶嶈秴鏃躲�戠殑Msg + msg1 = UserCenterLogic.CombineGatewayTimeOutMsg(msg1, result1); + this.ShowTipMsg(msg1); + return null; + } + NewScenesId = result1.getSceneIdData.NewScenesId; } - if (result1 == null || result1.getSceneIdData == null) + else { - //娣诲姞鍦烘櫙澶辫触 - string msg1 = Language.StringByID(R.MyInternationalizationString.AddSceneFail); - //鎷兼帴涓娿�愮綉鍏冲洖澶嶈秴鏃躲�戠殑Msg - msg1 = UserCenterLogic.CombineGatewayTimeOutMsg(msg1, result1); - this.ShowTipMsg(msg1); - return null; + //铏氭嫙鍦烘櫙ID + NewScenesId = Convert.ToInt32(DateTime.Now.ToString("HHmmss")); } //娣诲姞鎵ц鐩爣 - var listSuccess = await this.AddTargetToScene(result1.getSceneIdData.NewScenesId, listAdjustTarget); + var listSuccess = await this.AddTargetToScene(NewScenesId, listAdjustTarget); if (listSuccess == null) { return null; @@ -154,7 +165,7 @@ //鍒涘缓鍦烘櫙瀵硅薄 var newScene = new SceneUI(); newScene.Name = sceneName; - newScene.Id = result1.getSceneIdData.NewScenesId; + newScene.Id = NewScenesId; newScene.AdjustTargetList.AddRange(listSuccess); //娣诲姞缂撳瓨 newScene.Save(); @@ -172,6 +183,12 @@ /// <returns></returns> private async Task<List<Scene.DeviceListData>> AddTargetToScene(int sceneId, List<Scene.DeviceListData> listAdjustTarget) { + //濡傛灉褰撳墠浣忓畢鏄櫄鎷熶綇瀹呯殑璇� + if (Common.Config.Instance.Home.IsVirtually == true) + { + //涓嶉渶瑕佹洿鏂扮綉鍏� + return listAdjustTarget; + } var listSuccess = new List<Scene.DeviceListData>(); for (int i = 0; i < listAdjustTarget.Count; i++) { @@ -286,32 +303,34 @@ } /// <summary> - /// 鍒犻櫎鍦烘櫙(杩欎釜鍙Щ闄ゅ唴瀛�) + /// 娣诲姞铏氭嫙鍦烘櫙 /// </summary> - /// <param name="scene"></param> - public void DeleteSceneFromRoom(Room i_room, SceneUI scene) + /// <param name="sceneId">鎸囧畾鍦烘櫙id,濡傛灉涓�-1,鍒欎細鍐呴儴鑷姩缂栧彿(鍙兘浼氶噸澶�)</param> + /// <param name="sceneName">鍦烘櫙鍚嶅瓧</param> + /// <param name="listAdjustTarget">缁戝畾鐩爣</param> + /// <returns></returns> + public SceneUI AddVirtualScene(int sceneId, string sceneName, List<Scene.DeviceListData> listAdjustTarget) { - //绉婚櫎缂撳瓨 - if (i_room.ListSceneId.Contains(scene.Id) == true) + if (sceneId == -1) { - i_room.ListSceneId.Remove(scene.Id); - i_room.Save(); + sceneId = Convert.ToInt32(DateTime.Now.ToString("HHmmss")); } - } + //鍒涘缓鍦烘櫙瀵硅薄 + var newScene = new SceneUI(); + newScene.Name = sceneName; + newScene.IconPath = "SceneIcon/0.png"; + //铏氭嫙鍦烘櫙ID + newScene.Id = sceneId; + if (listAdjustTarget != null) + { + newScene.AdjustTargetList.AddRange(listAdjustTarget); + } + //娣诲姞缂撳瓨 + newScene.Save(); + //鍔犲叆缂撳瓨 + this.dicScenes[newScene.Id] = newScene; - /// <summary> - /// 鍒犻櫎鎼滆棌鍦烘櫙 - /// </summary> - /// <param name="scene"></param> - public void DeleteLoveScene(SceneUI scene) - { - var nowRoom = HdlRoomLogic.Current.GetLoveRoom(); - //绉婚櫎缂撳瓨 - if (nowRoom.ListSceneId.Contains(scene.Id) == true) - { - nowRoom.ListSceneId.Remove(scene.Id); - nowRoom.Save(); - } + return newScene; } #endregion @@ -326,6 +345,16 @@ /// <returns></returns> public async Task<bool> EditorSceneFromGateway(SceneUI sceneUI, List<Scene.DeviceListData> listAdjustTarget) { + //濡傛灉褰撳墠浣忓畢鏄櫄鎷熶綇瀹呯殑璇� + if (Common.Config.Instance.Home.IsVirtually == true) + { + //娓呯┖鍦烘櫙鐨勬墽琛岀洰鏍囧垪琛ㄧ殑缂撳瓨 + sceneUI.AdjustTargetList.Clear(); + sceneUI.AdjustTargetList.AddRange(listAdjustTarget); + sceneUI.Save(); + return true; + } + //鍏堟竻绌哄叏閮ㄧ殑鎵ц鐩爣 var deleteData = new Scene.SceneRemoveMemberData(); var deleteTargetData = new List<Scene.RemoveSceneDeviceListInfo>(); @@ -401,6 +430,12 @@ /// <returns></returns> public async Task<bool> EditorSceneNameFromGateway(SceneUI scene, string newName) { + //濡傛灉褰撳墠浣忓畢鏄櫄鎷熶綇瀹呯殑璇� + if (Common.Config.Instance.Home.IsVirtually == true) + { + //涓嶉渶瑕佹洿鏂扮綉鍏� + return true; + } var result1 = await Scene.RenameSceneAsync(scene.Id, newName); //鍏遍�氶敊璇娴� string error = HdlCheckLogic.Current.CheckCommonErrorCode(result1); @@ -440,10 +475,10 @@ #region 鈻� 鍒犻櫎鍦烘櫙___________________________ /// <summary> - /// 绉婚櫎鍦烘櫙--璇ヤ粎杩涜浜嗗鏈湴鍦烘櫙鏁版嵁鐨勫垹闄� + /// 鍒犻櫎鏈湴鍦烘櫙鏁版嵁 /// </summary> /// <param name="sceneUI">Scene user interface.</param> - public void RemoveScene(SceneUI sceneUI) + public void DeleteLocalScene(SceneUI sceneUI) { //绉婚櫎缂撳瓨 this.dicScenes.Remove(sceneUI.Id); @@ -476,6 +511,35 @@ Global.DeleteFilebyHomeId(sceneUI.IconPath); HdlAutoBackupLogic.DeleteFile(sceneUI.IconPath); } + } + } + + /// <summary> + /// 鍒犻櫎鍦烘櫙(杩欎釜鍙Щ闄ゅ唴瀛�) + /// </summary> + /// <param name="scene"></param> + public void DeleteSceneFromRoom(Room i_room, SceneUI scene) + { + //绉婚櫎缂撳瓨 + if (i_room.ListSceneId.Contains(scene.Id) == true) + { + i_room.ListSceneId.Remove(scene.Id); + i_room.Save(); + } + } + + /// <summary> + /// 鍒犻櫎鎼滆棌鍦烘櫙 + /// </summary> + /// <param name="scene"></param> + public void DeleteLoveScene(SceneUI scene) + { + var nowRoom = HdlRoomLogic.Current.GetLoveRoom(); + //绉婚櫎缂撳瓨 + if (nowRoom.ListSceneId.Contains(scene.Id) == true) + { + nowRoom.ListSceneId.Remove(scene.Id); + nowRoom.Save(); } } @@ -639,6 +703,13 @@ }); return false; } + //濡傛灉鏄櫄鎷熶綇瀹� + if (Common.Config.Instance.Home.IsVirtually == true) + { + //涓嶈皟鐢ㄧ綉鍏� + return true; + } + //鎵ц璋冪敤鍦烘櫙 var result = await Scene.ControlSceneAsync(scene.Id, scene.SceneDelayTime); if (result == null || result.sceneOpenData == null) @@ -681,6 +752,14 @@ /// <returns></returns> public async Task<List<Scene.DeviceListData>> GetAdjustTargetList(SceneUI i_scene) { + //濡傛灉浣忓畢涓鸿櫄鎷熶綇瀹� + if (Common.Config.Instance.Home.IsVirtually == true) + { + var listAdjustTarget = new List<Scene.DeviceListData>(); + listAdjustTarget.AddRange(i_scene.AdjustTargetList); + return listAdjustTarget; + } + var result = await Scene.GetSceneDeviceListAsync(i_scene.Id); //鍏遍�氶敊璇娴� string error = HdlCheckLogic.Current.CheckCommonErrorCode(result); -- Gitblit v1.8.0