| | |
| | | foreach (var sceneui in listDelete)
|
| | | {
|
| | | //执行删除
|
| | | this.RemoveScene(sceneui);
|
| | | this.DeleteLocalScene(sceneui);
|
| | | }
|
| | |
|
| | | return true;
|
| | |
| | | /// <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;
|
| | |
| | | //创建场景对象
|
| | | var newScene = new SceneUI();
|
| | | newScene.Name = sceneName;
|
| | | newScene.Id = result1.getSceneIdData.NewScenesId;
|
| | | newScene.Id = NewScenesId;
|
| | | newScene.AdjustTargetList.AddRange(listSuccess);
|
| | | //添加缓存
|
| | | newScene.Save();
|
| | |
| | | /// <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++)
|
| | | {
|
| | |
| | | }
|
| | |
|
| | | /// <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
|
| | |
| | | /// <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>();
|
| | |
| | | /// <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);
|
| | |
| | | #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);
|
| | |
| | | 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();
|
| | | }
|
| | | }
|
| | |
|
| | |
| | | });
|
| | | 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)
|
| | |
| | | /// <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);
|