From ae7c46bda98a987d170a9b8419fc014564790359 Mon Sep 17 00:00:00 2001
From: 黄学彪 <hxb@hdlchina.com.cn>
Date: 星期三, 06 五月 2020 14:20:12 +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