| | |
| | | }
|
| | | }
|
| | | var revertObj = JsonConvert.DeserializeObject<ResponsePack>(Encoding.UTF8.GetString(byteData));
|
| | | if (revertObj == null)
|
| | | {
|
| | | return "Error";
|
| | | }
|
| | | return revertObj.StateCode;
|
| | | }
|
| | |
|
| | |
| | | }
|
| | | if (revertObj == null || revertObj.ResponseData == null)
|
| | | {
|
| | | return string.Empty;
|
| | | return null;
|
| | | }
|
| | | return revertObj.ResponseData.ToString();
|
| | | }
|
| | |
| | | public static bool CheckCanAddForm(CommonFormBase form)
|
| | | {
|
| | | //获取画面英文名字
|
| | | string formName = GetFormName(form);
|
| | | string formId = GetFormID(form);
|
| | |
|
| | | //二重追加不可
|
| | | if (UserCenterResourse.DicActionForm.ContainsKey(formName) == false)
|
| | | if (UserCenterResourse.DicActionForm.ContainsKey(formId) == false)
|
| | | {
|
| | | return true;
|
| | | }
|
| | | //暂时这样弄看看,如果重复,则关闭掉原来的界面
|
| | | var formTemp = UserCenterResourse.DicActionForm[formName];
|
| | | var formTemp = UserCenterResourse.DicActionForm[formId];
|
| | | formTemp.CloseForm();
|
| | | UserCenterResourse.DicActionForm.Remove(formName);
|
| | | UserCenterResourse.DicActionForm.Remove(formId);
|
| | |
|
| | | return true;
|
| | | }
|
| | |
| | | public static void AddActionForm(CommonFormBase form)
|
| | | {
|
| | | //获取画面英文名字
|
| | | string formName = GetFormName(form);
|
| | | string formId = GetFormID(form);
|
| | |
|
| | | //二重追加不可
|
| | | if (UserCenterResourse.DicActionForm.ContainsKey(formName) == false)
|
| | | if (UserCenterResourse.DicActionForm.ContainsKey(formId) == false)
|
| | | {
|
| | | form.FormID = formName;
|
| | | form.FormID = formId;
|
| | | //内存添加
|
| | | UserCenterResourse.DicActionForm[formName] = form;
|
| | | UserCenterResourse.DicActionForm[formId] = form;
|
| | | //添加画面时,它自身就是激活的界面
|
| | | UserCenterResourse.NowActionFormID = form.FormID;
|
| | |
|
| | |
| | | /// <summary>
|
| | | /// 从列表中移除画面
|
| | | /// </summary>
|
| | | /// <param name="form">Form</param>
|
| | | public static void RemoveActionForm(CommonFormBase form)
|
| | | /// <param name="i_closeForm">关闭的界面</param>
|
| | | public static void RemoveActionForm(CommonFormBase i_closeForm)
|
| | | {
|
| | | //获取画面英文名字
|
| | | string formName = GetFormName(form);
|
| | | //获取画面ID
|
| | | string formId = GetFormID(i_closeForm);
|
| | |
|
| | | if (UserCenterResourse.DicActionForm.ContainsKey(formName) == true)
|
| | | if (UserCenterResourse.DicActionForm.ContainsKey(formId) == true)
|
| | | {
|
| | | //刷新当前正在操作的画面ID
|
| | | if (UserCenterResourse.NowActionFormID == UserCenterResourse.DicActionForm[formName].FormID)
|
| | | {
|
| | | //向前推一位即为下一个激活的界面
|
| | | int index = UserCenterResourse.listActionFormId.IndexOf(UserCenterResourse.NowActionFormID) - 1;
|
| | | //初始值
|
| | | UserCenterResourse.NowActionFormID = string.Empty;
|
| | | if (index >= 0)
|
| | | {
|
| | | var actionForm = UserView.HomePage.Instance.GetChildren(UserView.HomePage.Instance.ChildrenCount - 1);
|
| | | if (actionForm != null && actionForm is CommonFormBase)
|
| | | {
|
| | | string formId = ((CommonFormBase)actionForm).FormID;
|
| | | //对应徐梅继承了底层,但是不初始化数据的问题
|
| | | if (UserCenterResourse.listActionFormId.Contains(formId) == true)
|
| | | {
|
| | | //调用界面重新激活的函数
|
| | | CallFormActionAgainEvent(form, index);
|
| | | }
|
| | | }
|
| | | else if (actionForm != null && actionForm is UserView.UserPage)
|
| | | {
|
| | | //这里它已经退到主页了
|
| | | if (UserCenterResourse.listActionFormId.Contains("UserMainForm") == true//个人中心
|
| | | || UserCenterResourse.listActionFormId.Contains("HomeMainPageForm") == true)//
|
| | | {
|
| | | //调用界面重新激活的函数
|
| | | CallFormActionAgainEvent(form, index);
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | | //移除ID
|
| | | UserCenterResourse.listActionFormId.Remove(UserCenterResourse.DicActionForm[formName].FormID);
|
| | | UserCenterResourse.listActionFormId.Remove(formId);
|
| | | //移除画面
|
| | | UserCenterResourse.DicActionForm.Remove(formName);
|
| | | }
|
| | | }
|
| | | UserCenterResourse.DicActionForm.Remove(formId);
|
| | | //清空
|
| | | UserCenterResourse.NowActionFormID = string.Empty;
|
| | |
|
| | | /// <summary>
|
| | | /// 调用界面重新激活的函数
|
| | | /// </summary>
|
| | | /// <param name="form">关闭的界面对象</param>
|
| | | /// <param name="index">当前需要重新激活界面的索引</param>
|
| | | private static void CallFormActionAgainEvent(CommonFormBase form, int index)
|
| | | {
|
| | | //设置当前激活的画面ID
|
| | | UserCenterResourse.NowActionFormID = UserCenterResourse.listActionFormId[index];
|
| | | //追加条件一:关闭的界面为EditorCommonForm的时候才处理
|
| | | if ((form is EditorCommonForm) && UserCenterResourse.DicActionForm.ContainsKey(UserCenterResourse.NowActionFormID) == true)
|
| | | {
|
| | | try
|
| | | var actionForm = UserView.HomePage.Instance.GetChildren(UserView.HomePage.Instance.ChildrenCount - 1);
|
| | | if (actionForm == null)
|
| | | {
|
| | | var Myform = UserCenterResourse.DicActionForm[UserCenterResourse.NowActionFormID] as EditorCommonForm;
|
| | | //点击很快时,这个东西会是null,但是DicActionForm里面不是null,不知道为什么
|
| | | if (Myform != null)
|
| | | return;
|
| | | }
|
| | | //如果关闭的界面是DialogCommonForm类型,则不需要触发激活函数
|
| | | if (i_closeForm is DialogCommonForm)
|
| | | {
|
| | | if (actionForm is EditorCommonForm)
|
| | | {
|
| | | UserCenterResourse.NowActionFormID = GetFormID((EditorCommonForm)actionForm);
|
| | | }
|
| | | return;
|
| | | }
|
| | | //关闭的界面为EditorCommonForm的时候
|
| | | else if ((i_closeForm is EditorCommonForm) && (actionForm is EditorCommonForm))
|
| | | {
|
| | | //接下来激活的界面id
|
| | | UserCenterResourse.NowActionFormID = GetFormID((CommonFormBase)actionForm);
|
| | | try
|
| | | {
|
| | | var Myform = actionForm as EditorCommonForm;
|
| | | //重置左滑使能
|
| | | Myform.ScrollEnabled = Myform.ScrollEnabled;
|
| | | //触发界面再次激活的事件
|
| | |
| | | HdlLogLogic.Current.WriteLog(1, Myform.FormID + " 被激活");
|
| | | }
|
| | | }
|
| | | catch (Exception ex)
|
| | | {
|
| | | //Log出力
|
| | | HdlLogLogic.Current.WriteLog(ex, "界面重新激活异常 " + UserCenterResourse.NowActionFormID);
|
| | | }
|
| | | }
|
| | | catch (Exception ex)
|
| | | else if (actionForm is UserView.UserPage)
|
| | | {
|
| | | //出现未知错误,数据丢失
|
| | | //var alert = new ShowMsgControl(ShowMsgType.Error, Language.StringByID(R.MyInternationalizationString.uUnKnownError));
|
| | | //alert.Show();
|
| | |
|
| | | //Log出力
|
| | | HdlLogLogic.Current.WriteLog(ex, "界面重新激活异常 " + UserCenterResourse.NowActionFormID);
|
| | | //清空
|
| | | UserCenterResourse.NowActionFormID = string.Empty;
|
| | | //这里它已经退到主页了
|
| | | var nowForm = UserView.UserPage.Instance.GetNowActionForm();
|
| | | nowForm?.FormActionAgainEvent();
|
| | | }
|
| | | else
|
| | | {
|
| | | //清空
|
| | | UserCenterResourse.NowActionFormID = string.Empty;
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | | /// 获取画面英文名字
|
| | | /// 获取画面ID
|
| | | /// </summary>
|
| | | /// <returns>The form name.</returns>
|
| | | /// <param name="form">Form.</param>
|
| | | public static string GetFormName(CommonFormBase form)
|
| | | private static string GetFormID(CommonFormBase form)
|
| | | {
|
| | | if (form.FormID != string.Empty)
|
| | | {
|
| | |
| | | double Longitude = Config.Instance.Home.Longitude;
|
| | | double Latitude = Config.Instance.Home.Latitude;
|
| | | //还原住宅对象
|
| | | Config.Instance.Home = House.GetHouseByHouseId(Config.Instance.Home.Id);
|
| | | Config.Instance.Home = HdlResidenceLogic.Current.GetHouseByHouseId(Config.Instance.Home.Id);
|
| | | Config.Instance.Home.IsOthreShare = isOthreShare;
|
| | | Config.Instance.Home.AccountType = accountType;
|
| | | Config.Instance.Home.MainUserDistributedMark = mainMark;
|
| | |
| | | //清空当前住宅id
|
| | | Config.Instance.HomeId = string.Empty;
|
| | | HdlGatewayLogic.Current.ClearAllRealGateway();
|
| | | try
|
| | |
|
| | | //断开远程Mqtt连接
|
| | | HdlThreadLogic.Current.RunThread(async () =>
|
| | | {
|
| | | //断开远程Mqtt连接
|
| | | ZigBee.Device.ZbGateway.DisConnectRemoteMqttClient();
|
| | | }
|
| | | catch { }
|
| | | await ZigBee.Device.ZbGateway.DisConnectRemoteMqttClient();
|
| | | }, ShowErrorMode.NO);
|
| | |
|
| | | HdlThreadLogic.Current.RunMain(() =>
|
| | | {
|
| | |
| | | if (Common.Config.Instance.HomeId != UserCenterResourse.AccountOption.OldHomeStringId
|
| | | || Common.Config.Instance.Account != UserCenterResourse.AccountOption.OldAccountId)
|
| | | {
|
| | | try
|
| | | //断开远程Mqtt连接
|
| | | HdlThreadLogic.Current.RunThread(async () =>
|
| | | {
|
| | | //断开远程Mqtt连接
|
| | | await ZigBee.Device.ZbGateway.DisConnectRemoteMqttClient();
|
| | | }
|
| | | catch { }
|
| | | }, ShowErrorMode.NO);
|
| | |
|
| | | //清空所有成员缓存
|
| | | ClearAllMemberMemory();
|
| | |
| | | //初始化本地的网关信息
|
| | | HdlGatewayLogic.Current.ReFreshByLocal();
|
| | | //初始化本地的设备信息
|
| | | Common.LocalDevice.Current.ReFreshByLocal();
|
| | | LocalDevice.Current.ReFreshByLocal();
|
| | |
|
| | | //初始化房间(郭雪城那边不做处理,需要这里特殊执行一步)
|
| | | HdlRoomLogic.Current.RefreshAllRoomByLocation();
|
| | |
| | | #region ■ 文件保存和读取_____________________
|
| | |
|
| | | /// <summary>
|
| | | /// 文件保存,仅限当前住宅(整天忘记,所以建一个函数来玩玩)
|
| | | /// 文件保存(整天忘记,所以建一个函数来玩玩)
|
| | | /// </summary>
|
| | | /// <param name="fullName">全路径</param>
|
| | | /// <param name="obj">需要序列化的东西</param>
|
| | | public static void SaveFileContent(string fullName, object obj)
|
| | | {
|
| | | var data = JsonConvert.SerializeObject(obj);
|
| | | var byteData = Encoding.UTF8.GetBytes(data);
|
| | | SaveTexToFile(fullName, data);
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | | /// 文件保存(整天忘记,所以建一个函数来玩玩)
|
| | | /// </summary>
|
| | | /// <param name="fullName">全路径</param>
|
| | | /// <param name="obj">需要序列化的东西</param>
|
| | | public static void SaveTexToFile(string fullName, string textValue)
|
| | | {
|
| | | var byteData = Encoding.UTF8.GetBytes(textValue);
|
| | | //写入内容
|
| | | System.IO.FileStream fileStream = null;
|
| | | try
|