| | |
| | | /// </param>
|
| | | public static async Task<bool> GetResultStatuByRequestHttps(string RequestName, bool checkAuthority, object obj, List<string> listNotShowError = null)
|
| | | {
|
| | | //检测是否已经完成账号信息初始化
|
| | | if (UserCenterResourse.UserInfo.InitUserInfoSuccess == false)
|
| | | {
|
| | | //不管结果怎么样,如果调用了这个函数,需要重头获取Token,所以必须返回失败
|
| | | await ReInitUserAccoutInfo();
|
| | | return false;
|
| | | }
|
| | | //获取接口的连接模式
|
| | | var connectMode = GetHttpConnectMode(checkAuthority);
|
| | | //获取从接口那里取到的比特数据
|
| | |
| | | /// </param>
|
| | | public static async Task<string> GetResultCodeByRequestHttps(string RequestName, bool checkAuthority, object obj, List<string> listNotShowError = null)
|
| | | {
|
| | | //检测是否已经完成账号信息初始化
|
| | | if (UserCenterResourse.UserInfo.InitUserInfoSuccess == false)
|
| | | {
|
| | | //不管结果怎么样,如果调用了这个函数,需要重头获取Token,所以必须返回失败
|
| | | await ReInitUserAccoutInfo();
|
| | | return "Error";
|
| | | }
|
| | |
|
| | | //获取接口的连接模式
|
| | | var connectMode = GetHttpConnectMode(checkAuthority);
|
| | | //获取从接口那里取到的比特数据
|
| | |
| | | /// </param>
|
| | | public static async Task<string> GetResponseDataByRequestHttps(string RequestName, bool checkAuthority, object obj, List<string> listNotShowError = null)
|
| | | {
|
| | | //检测是否已经完成账号信息初始化
|
| | | if (UserCenterResourse.UserInfo.InitUserInfoSuccess == false)
|
| | | {
|
| | | //不管结果怎么样,如果调用了这个函数,需要重头获取Token,所以必须返回失败
|
| | | await ReInitUserAccoutInfo();
|
| | | return null;
|
| | | }
|
| | | //获取接口的连接模式
|
| | | var connectMode = GetHttpConnectMode(checkAuthority);
|
| | | //获取从接口那里取到的比特数据
|
| | |
| | | /// </param>
|
| | | public static async Task<byte[]> GetByteResponseDataByRequestHttps(string RequestName, bool checkAuthority, object obj, List<string> listNotShowError = null)
|
| | | {
|
| | | //检测是否已经完成账号信息初始化
|
| | | if (UserCenterResourse.UserInfo.InitUserInfoSuccess == false)
|
| | | {
|
| | | //不管结果怎么样,如果调用了这个函数,需要重头获取Token,所以必须返回失败
|
| | | await ReInitUserAccoutInfo();
|
| | | return null;
|
| | | }
|
| | | //获取接口的连接模式
|
| | | var connectMode = GetHttpConnectMode(checkAuthority);
|
| | | //获取从接口那里取到的比特数据
|
| | |
| | | {
|
| | | try
|
| | | {
|
| | | var Myform = UserCenterResourse.DicActionForm[UserCenterResourse.NowActionFormID];
|
| | | if (Myform is EditorCommonForm)
|
| | | EditorCommonForm Myform = UserCenterResourse.DicActionForm[UserCenterResourse.NowActionFormID] as EditorCommonForm;
|
| | | if (Myform != null)
|
| | | {
|
| | | //重置左滑使能
|
| | | Myform.ScrollEnabled = Myform.ScrollEnabled;
|
| | | //触发界面再次激活的事件
|
| | | int value = ((EditorCommonForm)Myform).FormActionAgainEvent();
|
| | | int value = Myform.FormActionAgainEvent();
|
| | | if (value == 1)
|
| | | {
|
| | | //Log出力
|
| | |
| | | {
|
| | | try
|
| | | {
|
| | | var Myform = UserCenterResourse.DicActionForm[UserCenterResourse.NowActionFormID];
|
| | | if (Myform is EditorCommonForm)
|
| | | EditorCommonForm Myform = UserCenterResourse.DicActionForm[UserCenterResourse.NowActionFormID] as EditorCommonForm;
|
| | | if (Myform != null)
|
| | | {
|
| | | //重置左滑使能
|
| | | Myform.ScrollEnabled = Myform.ScrollEnabled;
|
| | | //触发界面再次激活的事件
|
| | | int value = ((EditorCommonForm)Myform).FormActionAgainEvent();
|
| | | int value = Myform.FormActionAgainEvent();
|
| | | if (value == 1)
|
| | | {
|
| | | //Log出力
|
| | |
| | | /// <returns></returns>
|
| | | private async static Task<bool> InitUserAccoutInfo()
|
| | | {
|
| | | //初始化个人信息的标识
|
| | | UserCenterResourse.UserInfo.InitUserInfoSuccess = false;
|
| | | //获取本地记录的用户信息
|
| | | UserCenterResourse.UserInfo = GetUserInformationFromLocation();
|
| | | UserCenterResourse.UserInfo.UserIconFile = System.IO.Path.Combine(UserCenterResourse.Option.UserPictruePath, "Admin.png");
|
| | | //先根据本地缓存设置初始值
|
| | | Config.Instance.isAdministrator = UserCenterResourse.UserInfo.AuthorityNo != 1;
|
| | |
|
| | | //获取登录账号的信息
|
| | | var pra = new AccountInfoPra();
|
| | | var listNotShow = new List<string>() { "NotSetAgain" };
|
| | | string result = await UserCenterLogic.GetResponseDataByRequestHttps("ZigbeeUsers/GetAccountInfo", false, pra, listNotShow);
|
| | | if (string.IsNullOrEmpty(result) == true)
|
| | | //序列化对象
|
| | | var requestJson = JsonConvert.SerializeObject(pra);
|
| | | //访问接口
|
| | | byte[] byteData = await CommonPage.Instance.RequestHttpsZigbeeBytesResultAsync("ZigbeeUsers/GetAccountInfo", Encoding.UTF8.GetBytes(requestJson));
|
| | | if (byteData == null)
|
| | | {
|
| | | //断网的话,该干嘛就干嘛吧,总之不能控主人的东西
|
| | | Config.Instance.isAdministrator = false;
|
| | | return false;
|
| | | }
|
| | | //检测错误
|
| | | var revertObj = JsonConvert.DeserializeObject<ResponsePack>(Encoding.UTF8.GetString(byteData));
|
| | | if (revertObj.StateCode.ToUpper() != "SUCCESS")
|
| | | {
|
| | | return false;
|
| | | }
|
| | |
|
| | | var userInfo = Newtonsoft.Json.JsonConvert.DeserializeObject<UserInformation>(result);
|
| | | var userInfo = Newtonsoft.Json.JsonConvert.DeserializeObject<UserInformation>(revertObj.ResponseData.ToString());
|
| | | userInfo.Account = Common.Config.Instance.Account;
|
| | | if (string.IsNullOrEmpty(userInfo.UserName) == true)
|
| | | {
|
| | |
| | | string dirPath = CombinePath();
|
| | | if (System.IO.Directory.Exists(dirPath) == true)
|
| | | {
|
| | | //先记录起住宅的一些信息
|
| | | var house = House.GetHouseByHouseId(Config.Instance.HomeId);
|
| | | //删除整个文件夹
|
| | | System.IO.Directory.Delete(dirPath, true);
|
| | | try
|
| | | {
|
| | | //同步数据的判断文件(以防万一删除整个文件夹失败的时候,这个文件被删的话,应该没什么大问题)
|
| | | string SynchronizeFile = UserCenterLogic.CombinePath(DirNameResourse.LocalMemoryDirectory, DirNameResourse.AutoDownLoadBackupCheckFile);
|
| | | //如果本地已经拥有了这个文件,则说明不是新手机,不再自动还原
|
| | | if (System.IO.File.Exists(SynchronizeFile) == true)
|
| | | {
|
| | | System.IO.File.Delete(SynchronizeFile);
|
| | | }
|
| | | //删除整个文件夹
|
| | | System.IO.Directory.Delete(dirPath, true);
|
| | | }
|
| | | catch { }
|
| | | //创建住宅文件夹
|
| | | Global.CreateHomeDirectory(Config.Instance.HomeId);
|
| | | //预创建个人中心全部的文件夹
|
| | | CreatAllUserCenterDirectory();
|
| | |
|
| | | var newHouse = new House();
|
| | | newHouse.Id = house.Id;
|
| | | newHouse.Name = house.Name;
|
| | | newHouse.IsOthreShare = house.IsOthreShare;
|
| | | newHouse.AccountType = house.AccountType;
|
| | | newHouse.MainUserDistributedMark = house.MainUserDistributedMark;
|
| | | newHouse.Save(false);
|
| | | }
|
| | | }
|
| | | if (string.IsNullOrEmpty(userInfo.UserName) == true)
|
| | |
| | | UserCenterResourse.UserInfo.StringPwd = null;
|
| | |
|
| | | //初始化管理员控制主人的连接地址(因为这个连接Token是不会改变的,所以只需要初始化一次)
|
| | | await InitAdminConnectMainInfo();
|
| | | bool flage = await InitAdminConnectMainInfo();
|
| | | //初始化个人信息的标识
|
| | | UserCenterResourse.UserInfo.InitUserInfoSuccess = flage;
|
| | |
|
| | | return true;
|
| | | return flage;
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | |
| | | }
|
| | | var info = Newtonsoft.Json.JsonConvert.DeserializeObject<UserInformation>(value);
|
| | | return info;
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | | /// 重新初始化登陆账号的信息(旨在对应那一瞬间,网络不好,导致误判的情况)
|
| | | /// </summary>
|
| | | /// <returns></returns>
|
| | | private async static Task<bool> ReInitUserAccoutInfo()
|
| | | {
|
| | | //重新初始化账号信息
|
| | | var result = await InitUserAccoutInfo();
|
| | | if (result == false)
|
| | | {
|
| | | return result;
|
| | | }
|
| | | //同步云端的网关id,如果本地拥有云端不存在的id,则表示应该被换绑了,直接删除
|
| | | HdlGatewayLogic.Current.SynchronizeDbGateway();
|
| | | //初始化个人信息的标识
|
| | | UserCenterResourse.UserInfo.InitUserInfoSuccess = true;
|
| | |
|
| | | return true;
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | |
| | | /// 初始化管理员权限远程连接主人的信息
|
| | | /// </summary>
|
| | | /// <returns></returns>
|
| | | public static async Task<bool> InitAdminConnectMainInfo()
|
| | | private static async Task<bool> InitAdminConnectMainInfo()
|
| | | {
|
| | | //先清空
|
| | | Config.Instance.isAdministrator = false;
|
| | | Config.Instance.AdminRequestBaseUrl = string.Empty;
|
| | | Config.Instance.AdminRequestToken = string.Empty;
|
| | |
|
| | | if (UserCenterResourse.UserInfo.AuthorityNo != 2 && UserCenterResourse.UserInfo.AuthorityNo != 3)
|
| | | {
|
| | | //时代变了,这里管理员和成员都能调用
|
| | |
| | | SharedHid = Config.Instance.Home.Id
|
| | | };
|
| | |
|
| | | var listNotShow = new List<string>() { "NotSetAgain" };
|
| | | var result = await GetResponseDataByRequestHttps("App/GetSharedHomeApiControl", false, pra, listNotShow);
|
| | | if (string.IsNullOrEmpty(result) == true)
|
| | | //序列化对象
|
| | | var requestJson = JsonConvert.SerializeObject(pra);
|
| | | //访问接口
|
| | | byte[] byteData = await CommonPage.Instance.RequestHttpsZigbeeBytesResultAsync("App/GetSharedHomeApiControl", Encoding.UTF8.GetBytes(requestJson));
|
| | | if (byteData == null)
|
| | | {
|
| | | return false;
|
| | | }
|
| | | //检测错误
|
| | | var revertObj = JsonConvert.DeserializeObject<ResponsePack>(Encoding.UTF8.GetString(byteData));
|
| | | if (revertObj.StateCode.ToUpper() != "SUCCESS")
|
| | | {
|
| | | return false;
|
| | | }
|
| | |
|
| | | Config.Instance.isAdministrator = true;
|
| | | //分享链接
|
| | | var info = JsonConvert.DeserializeObject<MemberAdministratorResult>(result);
|
| | | var info = JsonConvert.DeserializeObject<MemberAdministratorResult>(revertObj.ResponseData.ToString());
|
| | | Config.Instance.AdminRequestBaseUrl = info.RequestBaseUrl;
|
| | | Config.Instance.AdminRequestToken = info.RequestToken;
|
| | |
|