From 6fa9d69da922c8049f5acfcbb9ce9fd26811024c Mon Sep 17 00:00:00 2001 From: xm <1271024303@qq.com> Date: 星期四, 16 四月 2020 17:10:57 +0800 Subject: [PATCH] 请合并代码 --- ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlSceneLogic.cs | 791 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 791 insertions(+), 0 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlSceneLogic.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlSceneLogic.cs new file mode 100755 index 0000000..ce36714 --- /dev/null +++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlSceneLogic.cs @@ -0,0 +1,791 @@ +锘縰sing Shared.Common; +using System; +using System.Collections.Generic; +using System.Text; +using System.Threading.Tasks; +using ZigBee.Device; + +namespace Shared.Phone.UserCenter +{ + /// <summary> + /// 鍦烘櫙鐨勯�昏緫 + /// </summary> + public class HdlSceneLogic + { + #region 鈻� 鍙橀噺澹版槑___________________________ + + /// <summary> + /// 鍦烘櫙鐨勯�昏緫 + /// </summary> + private static HdlSceneLogic m_Current = null; + /// <summary> + /// 鍦烘櫙鐨勯�昏緫 + /// </summary> + public static HdlSceneLogic Current + { + get + { + if (m_Current == null) + { + m_Current = new HdlSceneLogic(); + } + return m_Current; + } + } + + /// <summary> + /// 鍦烘櫙瀵硅薄 + /// </summary> + private Dictionary<int, SceneUI> dicScenes = new Dictionary<int, SceneUI>(); + + #endregion + + #region 鈻� 鍒锋柊鍦烘櫙___________________________ + + /// <summary> + /// 浠庢湰鍦板埛鏂板満鏅� + /// </summary> + public void ReFreshByLocal() + { + //娓呯┖鍦烘櫙 + this.dicScenes.Clear(); + //鑾峰彇鍏ㄩ儴鏂囦欢 + var listFile = this.GetAllSceneFile(); + foreach (string fileName in listFile) + { + try + { + var jsonInfo = Encoding.UTF8.GetString(Global.ReadFileByHomeId(fileName)); + var tempScene = Newtonsoft.Json.JsonConvert.DeserializeObject<SceneUI>(jsonInfo); + if (tempScene == null) + { + continue; + } + this.dicScenes[tempScene.Id] = tempScene; + } + catch(Exception ex) + { + HdlLogLogic.Current.WriteLog(ex); + try + { + //鍒犳帀閿欒鏂囦欢 + Global.DeleteFilebyHomeId(fileName); + } + catch { } + } + } + } + + /// <summary> + /// 鍒锋柊鏈湴鐨勫叏閮ㄥ満鏅� + /// </summary> + public async Task<bool> RefreshSceneUIList() + { + //鑾峰彇缃戝叧瀛樺湪鐨勫満鏅� + var sceneList = await ZigBee.Device.Scene.GetSceneListAsync(); + if (sceneList == null) + { + return false; + } + var listEsxit = new HashSet<int>(); + foreach (var scene in sceneList) + { + if (scene == null) + { + continue; + } + listEsxit.Add(scene.ScenesId); + } + + var listDelete = new List<SceneUI>(); + foreach (var scId in this.dicScenes.Keys) + { + if (listEsxit.Contains(scId) == false) + { + //鍒犻櫎鐨勫璞� + listDelete.Add(this.dicScenes[scId]); + } + } + foreach (var sceneui in listDelete) + { + //鎵ц鍒犻櫎 + this.RemoveScene(sceneui); + } + + return true; + } + + #endregion + + #region 鈻� 娣诲姞鍦烘櫙___________________________ + + /// <summary> + /// 娣诲姞鏂板満鏅埌缃戝叧(杩斿洖null浠h〃鍑洪敊) + /// </summary> + /// <param name="sceneName">鍦烘櫙鍚嶇О</param> + /// <param name="listAdjustTarget">鎵ц鐩爣</param> + /// <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) + { + 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; + } + //娣诲姞鎵ц鐩爣 + var listSuccess = await this.AddTargetToScene(result1.getSceneIdData.NewScenesId, listAdjustTarget); + if (listSuccess == null) + { + return null; + } + + //鍒涘缓鍦烘櫙瀵硅薄 + var newScene = new SceneUI(); + newScene.Name = sceneName; + newScene.Id = result1.getSceneIdData.NewScenesId; + newScene.AdjustTargetList.AddRange(listSuccess); + //娣诲姞缂撳瓨 + newScene.Save(); + //鍔犲叆缂撳瓨 + this.dicScenes[newScene.Id] = newScene; + + return newScene; + } + + /// <summary> + /// 娣诲姞鎵ц鐩爣鍒版寚瀹氱殑鍦烘櫙(杩斿洖鎴愬姛娣诲姞鐨勬墽琛岀洰鏍�) + /// </summary> + /// <param name="sceneId">鍦烘櫙Id</param> + /// <param name="listAdjustTarget">鎵ц鐩爣</param> + /// <returns></returns> + private async Task<List<Scene.DeviceListData>> AddTargetToScene(int sceneId, List<Scene.DeviceListData> listAdjustTarget) + { + var listSuccess = new List<Scene.DeviceListData>(); + for (int i = 0; i < listAdjustTarget.Count; i++) + { + var data = listAdjustTarget[i]; + var addData = new Scene.AddSceneMemberData(); + if (data.Type == 0) + { + //璁惧 + addData.Type = 0; + addData.ScenesId = sceneId; + addData.DeviceAddr = data.DeviceAddr; + addData.Epoint = data.Epoint; + addData.TaskList = data.TaskList; + addData.DelayTime = 0; + addData.MemberNumber = i + 1; + } + else if (data.Type == 1) + { + //鍦烘櫙 + addData.Type = 1; + addData.ScenesId = sceneId; + addData.ElseScenesId = data.ElseScenesId; + addData.DelayTime = 0; + addData.MemberNumber = i + 1; + } + else + { + //寤舵椂 + addData.Type = 2; + addData.ScenesId = sceneId; + addData.DelayTime = data.DelayTime; + addData.MemberNumber = i + 1; + } + + //娣诲姞鏂版垚鍛� 杩斿洖缁撴灉 + var result2 = await Scene.AddSceneMemberAsync(addData); + if (result2 == null || result2.addSceneMemberResponseData == null + || result2.addSceneMemberResponseData.Result != 1) + { + continue; + } + //鎷ユ湁鎴愬姛鐨� + listSuccess.Add(data); + } + if (listSuccess.Count == 0) + { + //娣诲姞鎵ц鐩爣澶辫触 + string msg1 = Language.StringByID(R.MyInternationalizationString.uAddAdjustTargetFail); + this.ShowTipMsg(msg1); + return null; + } + //濡傛灉涓嶆槸鍏ㄩ儴鎴愬姛鐨勮瘽,鎻愮ず + if (listSuccess.Count != listAdjustTarget.Count) + { + //涓埆鎵ц鐩爣娣诲姞澶辫触 + string msg1 = Language.StringByID(R.MyInternationalizationString.uSomeAdjustTargetAddFail); + this.ShowTipMsg(msg1); + } + return listSuccess; + } + + /// <summary> + /// 娣诲姞鍦烘櫙(杩欎釜鍗曠函鍙敼鎴块棿) + /// </summary> + /// <param name="scene">Scene.</param> + public void AddSceneToRoom(Room i_room, SceneUI scene) + { + //娣诲姞缂撳瓨 + if (i_room.ListSceneId.Contains(scene.Id) == false) + { + i_room.ListSceneId.Add(scene.Id); + i_room.Save(); + } + } + + /// <summary> + /// 鏀瑰彉鍦烘櫙鎴块棿 + /// </summary> + /// <param name="scene">鍦烘櫙瀵硅薄</param> + /// <param name="newRoomId">鏂扮殑鎴块棿鐨処D</param> + public void ChangedSceneRoom(SceneUI scene, string newRoomId) + { + var room = HdlRoomLogic.Current.GetRoomBySceneId(scene.Id); + if (room != null) + { + //鎴块棿娌℃湁鏀瑰彉 + if (room.Id == newRoomId) + { + return; + } + //浠庢埧闂翠腑绉婚櫎缂撳瓨 + this.DeleteSceneFromRoom(room, scene); + } + //娣诲姞杩涙柊鎴块棿 + var newRoom = HdlRoomLogic.Current.GetRoomById(newRoomId); + this.AddSceneToRoom(newRoom, scene); + } + + /// <summary> + /// 娣诲姞鎼滆棌鍦烘櫙 + /// </summary> + /// <param name="scene">Scene.</param> + public void AddLoveScene(SceneUI scene) + { + var nowRoom = HdlRoomLogic.Current.GetLoveRoom(); + //娣诲姞缂撳瓨 + if (nowRoom.ListSceneId.Contains(scene.Id) == false) + { + nowRoom.ListSceneId.Add(scene.Id); + nowRoom.Save(); + } + } + + /// <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(); + } + } + + #endregion + + #region 鈻� 淇敼鍦烘櫙___________________________ + + /// <summary> + /// 淇敼缃戝叧鐨勫満鏅� + /// </summary> + /// <param name="sceneUI">鍦烘櫙瀵硅薄</param> + /// <param name="listAdjustTarget">鍏ㄩ儴鐨勬墽琛岀洰鏍�</param> + /// <returns></returns> + public async Task<bool> EditorSceneFromGateway(SceneUI sceneUI, List<Scene.DeviceListData> listAdjustTarget) + { + //鍏堟竻绌哄叏閮ㄧ殑鎵ц鐩爣 + var deleteData = new Scene.SceneRemoveMemberData(); + var deleteTargetData = new List<Scene.RemoveSceneDeviceListInfo>(); + for (int i = 0; i < sceneUI.AdjustTargetList.Count; i++) + { + var data = sceneUI.AdjustTargetList[i]; + var removeData = new Scene.RemoveSceneDeviceListInfo(); + if (data.Type == 0) + { + //璁惧 + removeData.Type = 0; + removeData.DeviceAddr = data.DeviceAddr; + removeData.Epoint = data.Epoint; + removeData.MemberNumber = data.MemberNumber; + } + else if (data.Type == 1) + { + //鍦烘櫙 + removeData.Type = 1; + removeData.ElseScenesId = data.ElseScenesId; + removeData.MemberNumber = data.MemberNumber; + } + else + { + //寤舵椂 + removeData.Type = 2; + removeData.DelayTime = data.DelayTime; + removeData.MemberNumber = data.MemberNumber; + } + //鎷ユ湁鎴愬姛鐨� + deleteTargetData.Add(removeData); + } + deleteData.DeviceList = deleteTargetData; + deleteData.ScenesId = sceneUI.Id; + //鎵ц娓呯┖ + var result = await Scene.RemoveSceneMemberAsync(deleteData); + if (result == null || result.removeSceneMemberResponseData == null) + { + //鍒濆鍖栨墽琛岀洰鏍囧け璐� + string msg1 = Language.StringByID(R.MyInternationalizationString.uInitAdjustTargetFail); + //鎷兼帴涓娿�愮綉鍏冲洖澶嶈秴鏃躲�戠殑Msg + msg1 = UserCenterLogic.CombineGatewayTimeOutMsg(msg1, result); + this.ShowTipMsg(msg1); + return false; + } + if (result.removeSceneMemberResponseData.Result != 0) + { + //鍒濆鍖栨墽琛岀洰鏍囧け璐� + string msg1 = Language.StringByID(R.MyInternationalizationString.uInitAdjustTargetFail); + this.ShowTipMsg(msg1); + return false; + } + //娓呯┖鍦烘櫙鐨勬墽琛岀洰鏍囧垪琛ㄧ殑缂撳瓨 + sceneUI.AdjustTargetList.Clear(); + + //鐒跺悗閲嶆柊娣诲姞 + var listSuccess = await this.AddTargetToScene(sceneUI.Id, listAdjustTarget); + if (listSuccess == null) + { + return false; + } + sceneUI.AdjustTargetList.AddRange(listSuccess); + sceneUI.Save(); + + return true; + } + + /// <summary> + /// 淇敼缃戝叧鐨勫満鏅悕绉� + /// </summary> + /// <param name="scene">鍦烘櫙瀵硅薄</param> + /// <param name="newName">鏂扮殑鍚嶅瓧</param> + /// <returns></returns> + public async Task<bool> EditorSceneNameFromGateway(SceneUI scene, string newName) + { + var result1 = await Scene.RenameSceneAsync(scene.Id, newName); + //鍏遍�氶敊璇娴� + string error = HdlCheckLogic.Current.CheckCommonErrorCode(result1); + if (error != null) + { + this.ShowErrorMsg(error); + return false; + } + if (result1 == null || result1.sceneRenameResponseData == null) + { + //淇敼鍦烘櫙鍚嶇О澶辫触 + string msg1 = Language.StringByID(R.MyInternationalizationString.uEditorSceneNameFail); + //鎷兼帴涓娿�愮綉鍏冲洖澶嶈秴鏃躲�戠殑Msg + msg1 = UserCenterLogic.CombineGatewayTimeOutMsg(msg1, result1); + this.ShowTipMsg(msg1); + return false; + } + if (result1.sceneRenameResponseData.Result == 2) + { + //鐩爣鍦烘櫙涓嶅瓨鍦� + string msg1 = Language.StringByID(R.MyInternationalizationString.uTargetSceneIsNotExsit); + this.ShowTipMsg(msg1); + return false; + } + if (result1.sceneRenameResponseData.Result != 1) + { + //淇敼鍦烘櫙鍚嶇О澶辫触 + string msg1 = Language.StringByID(R.MyInternationalizationString.uEditorSceneNameFail); + this.ShowTipMsg(msg1); + return false; + } + return true; + } + + #endregion + + #region 鈻� 鍒犻櫎鍦烘櫙___________________________ + + /// <summary> + /// 绉婚櫎鍦烘櫙--璇ヤ粎杩涜浜嗗鏈湴鍦烘櫙鏁版嵁鐨勫垹闄� + /// </summary> + /// <param name="sceneUI">Scene user interface.</param> + public void RemoveScene(SceneUI sceneUI) + { + //绉婚櫎缂撳瓨 + this.dicScenes.Remove(sceneUI.Id); + var room = HdlRoomLogic.Current.GetRoomBySceneId(sceneUI.Id); + if (room != null) + { + room.ListSceneId.Remove(sceneUI.Id); + room.Save(); + } + + //绉婚櫎鍠滅埍 + var roomLove = HdlRoomLogic.Current.GetLoveRoom(); + if (roomLove.ListSceneId.Contains(sceneUI.Id) == true) + { + roomLove.ListSceneId.Remove(sceneUI.Id); + roomLove.Save(); + } + + //鍒犻櫎鏂囦欢 + if (Global.IsExistsByHomeId(sceneUI.FileName) == true) + { + Global.DeleteFilebyHomeId(sceneUI.FileName); + HdlAutoBackupLogic.DeleteFile(sceneUI.FileName); + } + //鍒犻櫎鍥剧墖 + if (sceneUI.IconPathType == 1 || sceneUI.IconPathType == 2) + { + if (Global.IsExistsByHomeId(sceneUI.IconPath)) + { + Global.DeleteFilebyHomeId(sceneUI.IconPath); + HdlAutoBackupLogic.DeleteFile(sceneUI.IconPath); + } + } + } + + #endregion + + #region 鈻� 鑾峰彇鍦烘櫙___________________________ + + /// <summary> + /// 閫氳繃鍦烘櫙id鑾峰彇鍦烘櫙 + /// </summary> + /// <returns>The scene UIB y scene identifier.</returns> + /// <param name="sceneId">Scene identifier.</param> + public SceneUI GetSceneUIBySceneId(int sceneId) + { + if (this.dicScenes.ContainsKey(sceneId) == true) + { + return this.dicScenes[sceneId]; + } + return null; + } + + /// <summary> + /// 鑾峰彇璇ユゼ灞傛墍鏈夊満鏅� + /// </summary> + /// <param name="floorId"></param> + /// <returns></returns> + public List<SceneUI> GetSameFloorScenes(string floorId) + { + List<SceneUI> sceneUIs = new List<SceneUI>(); + var rooms = HdlRoomLogic.Current.GetRoomsByFloorId(floorId); + foreach (var r in rooms) + { + foreach (int sceneId in r.ListSceneId) + { + if (this.dicScenes.ContainsKey(sceneId) == true) + { + sceneUIs.Add(this.dicScenes[sceneId]); + } + } + } + return sceneUIs; + } + + /// <summary> + /// 鏍规嵁鍦烘櫙Id锛岃幏鍙栨ゼ灞傚拰鎴块棿鍚嶅瓧(妤煎眰,鎴块棿鍚嶅瓧) + /// </summary> + /// <returns></returns> + public string GetZoneById(int sceneId) + { + var room =HdlRoomLogic.Current.GetRoomBySceneId(sceneId); + if (room == null) + { + return null; + } + var floorName = Shared.Common.Config.Instance.Home.GetFloorNameById(room.FloorId); + if (floorName == null) + { + return room.Name; + } + return $"{floorName},{room.Name}"; + } + + /// <summary> + /// 鑾峰彇鏈垎閰嶅尯鍩熷満鏅� + /// </summary> + /// <returns></returns> + public List<SceneUI> GetUnalloctedScenes() + { + List<SceneUI> sceneUIs = new List<SceneUI>(); + //宸茬粡瀛樺湪鐨勫満鏅� + var listEsxit = new HashSet<int>(); + var listAllRoom = HdlRoomLogic.Current.GetAllListRooms(); + foreach (var room in listAllRoom) + { + if (room.IsLove == true) + { + //涓嶅寘鍚敹钘忔埧闂� + continue; + } + foreach (int sceneId in room.ListSceneId) + { + if (listEsxit.Contains(sceneId) == false) + { + listEsxit.Add(sceneId); + } + } + } + foreach (var myScene in this.dicScenes.Values) + { + if (listEsxit.Contains(myScene.Id) == false) + { + sceneUIs.Add(myScene); + } + } + + if (sceneUIs.Count == 0) + { + return null; + } + return sceneUIs; + } + + /// <summary> + /// 鑾峰彇鍏ㄩ儴鎴块棿鐨勫叏閮ㄥ満鏅� + /// </summary> + /// <returns></returns> + public List<SceneUI> GetAllRoomSceneList() + { + List<SceneUI> sceneUIs = new List<SceneUI>(); + var listAllRoom = HdlRoomLogic.Current.GetAllListRooms(); + foreach (var room in listAllRoom) + { + foreach (int sceneId in room.ListSceneId) + { + if (this.dicScenes.ContainsKey(sceneId) == true) + { + sceneUIs.Add(this.dicScenes[sceneId]); + } + } + } + + return sceneUIs; + } + + /// <summary> + /// 鑾峰彇鎸囧畾鎴块棿鐨勫叏閮ㄥ満鏅� + /// </summary> + /// <returns></returns> + public List<SceneUI> GetRoomSceneList(Room i_room) + { + List<SceneUI> sceneUIs = new List<SceneUI>(); + foreach (int sceneId in i_room.ListSceneId) + { + if (this.dicScenes.ContainsKey(sceneId) == true) + { + sceneUIs.Add(this.dicScenes[sceneId]); + } + } + + return sceneUIs; + } + + #endregion + + #region 鈻� 璋冪敤鍦烘櫙___________________________ + + /// <summary> + /// 璋冪敤鍦烘櫙 + /// </summary> + /// <param name="scene"></param> + /// <returns></returns> + public async Task<bool> ControlScene(SceneUI scene) + { + if (scene.RemainTime > 0) + { + HdlThreadLogic.Current.RunMain(() => + { + //璇ュ満鏅鍦ㄥ欢鏃讹紝璇风◢鍚� + var msgContr = new ShowMsgControl(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.TheSceneIsDelaying)); + msgContr.Show(); + }); + return false; + } + //鎵ц璋冪敤鍦烘櫙 + var result = await Scene.ControlSceneAsync(scene.Id, scene.SceneDelayTime); + if (result == null || result.sceneOpenData == null) + { + //鎺у埗鍦烘櫙澶辫触 + string msg = Language.StringByID(R.MyInternationalizationString.ControlSceneFail); + //鎷兼帴涓娿�愮綉鍏冲洖澶嶈秴鏃躲�戠殑Msg + msg = UserCenterLogic.CombineGatewayTimeOutMsg(msg, result); + HdlThreadLogic.Current.RunMain(() => + { + //璇ュ満鏅鍦ㄥ欢鏃讹紝璇风◢鍚� + var msgContr = new ShowMsgControl(ShowMsgType.Tip, msg); + msgContr.Show(); + }); + return false; + } + if (result.sceneOpenData.Result == 0) + { + //鎺у埗鍦烘櫙澶辫触 + string msg = Language.StringByID(R.MyInternationalizationString.ControlSceneFail); + HdlThreadLogic.Current.RunMain(() => + { + //璇ュ満鏅鍦ㄥ欢鏃讹紝璇风◢鍚� + var msgContr = new ShowMsgControl(ShowMsgType.Tip, msg); + msgContr.Show(); + }); + return false; + } + return true; + } + + #endregion + + #region 鈻� 鑾峰彇鍦烘櫙鐨勬墽琛岀洰鏍囧垪琛╛____________ + + /// <summary> + /// 鑾峰彇鍦烘櫙鐨勬墽琛岀洰鏍囧垪琛� + /// </summary> + /// <param name="i_scene">鍦烘櫙瀵硅薄</param> + /// <returns></returns> + public async Task<List<Scene.DeviceListData>> GetAdjustTargetList(SceneUI i_scene) + { + var result = await Scene.GetSceneDeviceListAsync(i_scene.Id); + //鍏遍�氶敊璇娴� + string error = HdlCheckLogic.Current.CheckCommonErrorCode(result); + if (error != null) + { + this.ShowErrorMsg(error); + return null; + } + if (result == null || result.getSceneDeviceListInfo == null) + { + //鑾峰彇鎵ц鐩爣澶辫触 + string msg = Language.StringByID(R.MyInternationalizationString.uGetAdjustTargetFail); + //鎷兼帴涓娿�愮綉鍏冲洖澶嶈秴鏃躲�戠殑Msg + msg = UserCenterLogic.CombineGatewayTimeOutMsg(msg, result); + + this.ShowTipMsg(msg); + return null; + } + i_scene.AdjustTargetList = result.getSceneDeviceListInfo.DeviceList; + //淇濆瓨缂撳瓨 + i_scene.Save(false); + + var listData = new List<Scene.DeviceListData>(); + listData.AddRange(result.getSceneDeviceListInfo.DeviceList); + + return listData; + } + #endregion + + #region 鈻� 寤舵椂鏃堕棿绾跨▼_______________________ + + /// <summary> + /// 寮�鍚欢鏃舵椂闂寸嚎绋�(鏃ㄥ湪鍏ㄩ儴鍦版柟鐨勫悓涓�鍦烘櫙鏃堕棿鍚屾) + /// </summary> + public void StartDelayTimeThread(SceneUI i_scene) + { + if (i_scene.RemainThreadAction == true) + { + //绾跨▼鍦ㄨ繍琛屼腑 + return; + } + i_scene.RemainThreadAction = true; + + HdlThreadLogic.Current.RunThread(() => + { + while (i_scene.RemainTime > 0) + { + System.Threading.Thread.Sleep(1000); + i_scene.RemainTime--; + } + i_scene.RemainThreadAction = false; + }); + } + + #endregion + + #region 鈻� 涓�鑸柟娉昣__________________________ + + /// <summary> + /// 鑾峰彇鏈湴鍏ㄩ儴鐨勫満鏅枃浠� + /// </summary> + /// <returns></returns> + public List<string> GetAllSceneFile() + { + List<string> listSceneFile = new List<string>(); + List<string> listAllFile = Global.FileListByHomeId(); + + foreach (string file in listAllFile) + { + if (file.StartsWith("Scene_") == false) + { + //濡傛灉涓嶆槸鍦烘櫙鏂囦欢 + continue; + } + listSceneFile.Add(file); + } + return listSceneFile; + } + + /// <summary> + /// 鏄剧ず閿欒淇℃伅绐楀彛 + /// </summary> + /// <param name="msg"></param> + private void ShowErrorMsg(string msg) + { + Application.RunOnMainThread(() => + { + var contr = new ShowMsgControl(ShowMsgType.Error, msg); + contr.Show(); + }); + } + + /// <summary> + /// 鏄剧ずTip淇℃伅绐楀彛 + /// </summary> + /// <param name="msg"></param> + private void ShowTipMsg(string msg) + { + Application.RunOnMainThread(() => + { + var contr = new ShowMsgControl(ShowMsgType.Tip, msg); + contr.Show(); + }); + } + + #endregion + } +} -- Gitblit v1.8.0