| | |
| | | using System.Collections.Generic; |
| | | using System.Security.Cryptography; |
| | | using System.Text; |
| | | using System.Text.RegularExpressions; |
| | | |
| | | namespace Shared.SimpleControl.Phone |
| | | { |
| | |
| | | TextColor = SkinStyle.Current.TextColor1, |
| | | //Text = account, |
| | | #if DEBUG |
| | | Text = "18926269190@189.cn" |
| | | //Text = "18926269190@189.cn" |
| | | Text = "721343314@qq.com" |
| | | #endif |
| | | }; |
| | | accountView.AddChidren (etAccount); |
| | |
| | | return; |
| | | } |
| | | |
| | | var revertConnectionObj = MainPage.RequestHttps ("Connection", ""); |
| | | if (revertConnectionObj.StateCode == "SUCCESS") { |
| | | var revertConnectionObj = MainPage.RequestHttps (API.Connection, ""); |
| | | if (revertConnectionObj.StateCode.ToUpper() == "SUCCESS") { |
| | | Application.RunOnMainThread (() => { |
| | | if (Language.CurrentLanguage == "Chinese") { |
| | | MainPage.Loading.Start ("链接服务器成功..."); |
| | |
| | | } |
| | | }); |
| | | |
| | | var requestObj = new LoginObj () { Account = account, Password = password, Company = MainPage.SoftSmsType }; |
| | | var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (requestObj); |
| | | var revertObj = MainPage.RequestHttps ("Login", requestJson, false); |
| | | if (revertObj.StateCode == "SUCCESS") { |
| | | |
| | | if (!accountListDB.account.Contains (account)) { |
| | | accountListDB.account.Add (account); |
| | | accountListDB.SaveAccountListDB (); |
| | | } |
| | | |
| | | var responseDataObj = Newtonsoft.Json.JsonConvert.DeserializeObject<UserLoginRes> (revertObj.ResponseData.ToString ()); |
| | | var revertData = responseDataObj; |
| | | MainPage.LoginUser = new UserInfo { |
| | | ID = revertData.UserId, MasterID = revertData.MainUserId, AccountType = revertData.UserType, AccountString = account, Password = password, LastTime = DateTime.Now, |
| | | AllVisionRegisterDevUserNameGuid = revertData.AllVisionRegisterDevUserNameGuid, Name = revertData.Contact |
| | | }; |
| | | var se = new service.hdlcontrol.com_push.WebServicePush (); |
| | | se.VerifySoapHeaderValue = new service.hdlcontrol.com_push.VerifySoapHeader () { Email = MainPage.LoginUser.AccountString, UserMode = 0 }; |
| | | se.AddRegId (UserConfig.Instance.tokenID, UserConfig.Instance.phoneName); |
| | | |
| | | var requestObj2 = new HomeListObj (); |
| | | var requestJson2 = Newtonsoft.Json.JsonConvert.SerializeObject (requestObj2); |
| | | var revertObj2 = MainPage.RequestHttps ("HomeList", requestJson2); |
| | | if (revertObj2.StateCode == "SUCCESS") { |
| | | var responseDataObj2 = Newtonsoft.Json.JsonConvert.DeserializeObject<List<RegionInfoRes>> (revertObj2.ResponseData.ToString ()); |
| | | var revertRoomData = responseDataObj2; |
| | | if (revertRoomData.Find ((obj) => obj.RegionID == UserConfig.Instance.CurrentRegion.RegionID) == null) { |
| | | UserConfig.Instance.CurrentRegion = revertRoomData [0]; |
| | | UserConfig.Instance.GatewayMAC = revertRoomData [0].MAC; |
| | | IO.FileUtils.DeleteAllFile (); |
| | | Login (account, password, accountListDB); |
| | | } else { |
| | | Room.InitAllRoom (); |
| | | MainPage.FailureToServer (); |
| | | } |
| | | |
| | | var gatewayListObj = new GatewayListObj (); |
| | | var gatewayListJson = Newtonsoft.Json.JsonConvert.SerializeObject (gatewayListObj); |
| | | var gatewayListRevertObj = MainPage.RequestHttps ("GatewayList", gatewayListJson); |
| | | if (gatewayListRevertObj.StateCode == "SUCCESS") { |
| | | UserConfig.Instance.GatewayList.Clear (); |
| | | var responseGatewayDataObj = Newtonsoft.Json.JsonConvert.DeserializeObject<List<GatewayRes>> (gatewayListRevertObj.ResponseData.ToString ()); |
| | | UserConfig.Instance.GatewayList.AddRange (responseGatewayDataObj); |
| | | UserConfig.Instance.SaveUserConfig (); |
| | | MainPage.LoginUser.LastTime = DateTime.Now; |
| | | if (UserConfig.Instance.GatewayList.Count == 0) { |
| | | Application.RunOnMainThread (() => { |
| | | UserMiddle.Init (); |
| | | Close (); |
| | | }); |
| | | return; |
| | | } else { |
| | | UserConfig.Instance.HomeLists = revertRoomData; |
| | | MainPage.LoginUser.SaveUserInfo (); |
| | | UserConfig.Instance.SaveUserConfig (); |
| | | Scene.Refresh (); |
| | | A31MusicModel.Refresh (); |
| | | Application.RunOnMainThread (() => { |
| | | Close (); |
| | | UserMiddle.Init (); |
| | | EquipmentPublicClass.CheckLinkRemote (2); |
| | | }); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } catch (Exception ex) { |
| | | MainPage.FailureToServer (); |
| | | Console.WriteLine (ex.Message); |
| | |
| | | |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | /// <param name="stateCodeStr"></param> |
| | | void ShowGetHomePagerErrorInfo (string stateCodeStr) |
| | | { |
| | | string mes = ""; |
| | | //2020-01-06 待补充 |
| | | if (stateCodeStr == ErrorCode.NetworkError) { |
| | | mes = ErrorCode.NetworkError; |
| | | } else { |
| | | mes = ErrorCode.OperationFailed + ErrorCode.Reason + stateCodeStr; |
| | | |
| | | } |
| | | if (!string.IsNullOrEmpty (mes)) { |
| | | Application.RunOnMainThread (() => { |
| | | new Alert ("", mes, Language.StringByID (R.MyInternationalizationString.Close)).Show (); |
| | | }); |
| | | } |
| | | |
| | | |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | /// <param name="stateCodeStr"></param> |
| | | void ShowGetAllBindGatewarysPaggerErrorInfo (string stateCodeStr) |
| | | { |
| | | string mes = ""; |
| | | //2020-01-06 待补充 |
| | | if (stateCodeStr == ErrorCode.NetworkError) { |
| | | mes = ErrorCode.NetworkError; |
| | | } else { |
| | | mes = ErrorCode.OperationFailed + ErrorCode.Reason + stateCodeStr; |
| | | |
| | | } |
| | | if (!string.IsNullOrEmpty (mes)) { |
| | | Application.RunOnMainThread (() => { |
| | | new Alert ("", mes, Language.StringByID (R.MyInternationalizationString.Close)).Show (); |
| | | }); |
| | | } |
| | | |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 登录 |
| | | /// </summary> |
| | | /// <param name="account">Account.</param> |
| | | /// <param name="password">Password.</param> |
| | | private void Login (string account, string password, AccountListDB accountListDB) |
| | | { |
| | | //string pattern = @"(http|https)://(?<domain>[^(:|/]*)"; |
| | | //Regex reg = new Regex (pattern, RegexOptions.IgnoreCase); |
| | | //Match m = reg.Match (MainPage.RequestHttpsHost); |
| | | //string mResult = m.Groups ["domain"].Value; |
| | | //if (!string.IsNullOrEmpty (mResult)) { |
| | | // MainPage.RequestHttpsHostMqtt = "https://" + mResult; |
| | | //} |
| | | |
| | | //return; |
| | | |
| | | var requestObj = new LoginObj () { Account = account, Password = password, Company = MainPage.SoftSmsType }; |
| | | var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (requestObj); |
| | | var revertObj = MainPage.RequestHttps (API.Login, requestJson, false, false); |
| | | if (revertObj.StateCode.ToUpper() == "SUCCESS") { |
| | | |
| | | if (!accountListDB.account.Contains (account)) { |
| | | accountListDB.account.Add (account); |
| | | accountListDB.SaveAccountListDB (); |
| | | } |
| | | |
| | | var responseDataObj = Newtonsoft.Json.JsonConvert.DeserializeObject<UserLoginRes> (revertObj.ResponseData.ToString ()); |
| | | var revertData = responseDataObj; |
| | | MainPage.LoginUser = new UserInfo { |
| | | ID = revertData.UserId, |
| | | MainUserId = revertData.MainUserId, |
| | | AccountType = revertData.UserType, |
| | | AccountString = account, |
| | | Password = password, |
| | | LastTime = DateTime.Now, |
| | | AllVisionRegisterDevUserNameGuid = revertData.AllVisionRegisterDevUserNameGuid, |
| | | Name = revertData.Contact, |
| | | Guid = revertData.Guid, |
| | | MD5PWD = revertData.MD5PWD, |
| | | |
| | | |
| | | }; |
| | | //var se = new service.hdlcontrol.com_push.WebServicePush (); |
| | | //se.VerifySoapHeaderValue = new service.hdlcontrol.com_push.VerifySoapHeader () { Email = MainPage.LoginUser.AccountString, UserMode = 0 }; |
| | | //se.AddRegId (UserConfig.Instance.tokenID, UserConfig.Instance.phoneName); |
| | | var requestObj2 = new GetHomePagerObj (); |
| | | requestObj2.ReqDto.LoginAccessToken = MainPage.LoginUser.LoginTokenString; |
| | | |
| | | var requestJson2 = Newtonsoft.Json.JsonConvert.SerializeObject (requestObj2); |
| | | var revertObj2 = MainPage.RequestHttps (API.GetHomePager, requestJson2); |
| | | |
| | | if (revertObj2.StateCode.ToUpper () == "SUCCESS") { |
| | | |
| | | //var DD = Newtonsoft.Json.Linq.JObject.Parse ("GFGFDG"); |
| | | //DD["ResponseData"]["PageData"]; |
| | | var mResidenceRes = Newtonsoft.Json.JsonConvert.DeserializeObject<ResidenceRes> (revertObj2.ResponseData.ToString ()); |
| | | //if (mResidenceRes.TotalCount != 0) { |
| | | // //当住宅为空时先提示用户新建住宅 |
| | | |
| | | //} else { |
| | | |
| | | var revertRoomData = mResidenceRes.PageData; |
| | | if (revertRoomData.Find ((obj) => obj.Id == UserConfig.Instance.CurrentRegion.Id) == null) { |
| | | if (revertRoomData != null && revertRoomData.Count > 0) { |
| | | UserConfig.Instance.CurrentRegion = revertRoomData [0]; |
| | | if (UserConfig.Instance.CheckHomeGateways ()) { |
| | | UserConfig.Instance.GatewayMAC = revertRoomData [0].HomeGateways [0].GatewayUniqueId; |
| | | } |
| | | IO.FileUtils.DeleteAllFile (); |
| | | } |
| | | } else { |
| | | Room.InitAllRoom (); |
| | | } |
| | | |
| | | var gatewayListObj = new GetAllBindGatewarysPaggerObj (); |
| | | gatewayListObj.ReqDto.LoginAccessToken = MainPage.LoginUser.LoginTokenString; |
| | | |
| | | //var gatewayListObj = new GatewayListObj (); |
| | | var gatewayListJson = Newtonsoft.Json.JsonConvert.SerializeObject (gatewayListObj); |
| | | var gatewayListRevertObj = MainPage.RequestHttps (API.GetAllBindGatewarysPagger, gatewayListJson); |
| | | if (gatewayListRevertObj.StateCode.ToUpper () == "SUCCESS") { |
| | | UserConfig.Instance.GatewayList.Clear (); |
| | | |
| | | var mGateRes = Newtonsoft.Json.JsonConvert.DeserializeObject<AllBindGatewarysPaggerRes> (gatewayListRevertObj.ResponseData.ToString ()); |
| | | //var responseGatewayDataObj = mGateRes.PageData; |
| | | UserConfig.Instance.GatewayList.AddRange (mGateRes.PageData); |
| | | UserConfig.Instance.SaveUserConfig (); |
| | | MainPage.LoginUser.LastTime = DateTime.Now; |
| | | if (UserConfig.Instance.GatewayList.Count == 0) { |
| | | Application.RunOnMainThread (() => { |
| | | UserMiddle.Init (); |
| | | Close (); |
| | | }); |
| | | return; |
| | | } else { |
| | | UserConfig.Instance.HomeLists = revertRoomData; |
| | | MainPage.LoginUser.SaveUserInfo (); |
| | | UserConfig.Instance.SaveUserConfig (); |
| | | Scene.Refresh (); |
| | | A31MusicModel.Refresh (); |
| | | Application.RunOnMainThread (() => { |
| | | Close (); |
| | | UserMiddle.Init (); |
| | | EquipmentPublicClass.CheckLinkRemote (2); |
| | | }); |
| | | } |
| | | } else { |
| | | //GetAllBindGatewarysPagger 失败提示 |
| | | ShowGetAllBindGatewarysPaggerErrorInfo (gatewayListRevertObj.StateCode); |
| | | } |
| | | //} |
| | | } else { |
| | | //GetHomePager 失败提示 |
| | | ShowGetHomePagerErrorInfo (revertObj2.StateCode); |
| | | } |
| | | |
| | | //var requestObj2 = new HomeListObj (); |
| | | //var requestJson2 = Newtonsoft.Json.JsonConvert.SerializeObject (requestObj2); |
| | | //var revertObj2 = MainPage.RequestHttps ("HomeList", requestJson2); |
| | | //if (revertObj2.StateCode.ToUpper() == "SUCCESS") { |
| | | // var responseDataObj2 = Newtonsoft.Json.JsonConvert.DeserializeObject<List<RegionInfoRes>> (revertObj2.ResponseData.ToString ()); |
| | | // var revertRoomData = responseDataObj2; |
| | | // if (revertRoomData.Find ((obj) => obj.RegionID == UserConfig.Instance.CurrentRegion.RegionID) == null) { |
| | | // UserConfig.Instance.CurrentRegion = revertRoomData [0]; |
| | | // UserConfig.Instance.GatewayMAC = revertRoomData [0].MAC; |
| | | // IO.FileUtils.DeleteAllFile (); |
| | | // } else { |
| | | // Room.InitAllRoom (); |
| | | // } |
| | | |
| | | // var gatewayListObj = new GatewayListObj (); |
| | | // var gatewayListJson = Newtonsoft.Json.JsonConvert.SerializeObject (gatewayListObj); |
| | | // var gatewayListRevertObj = MainPage.RequestHttps ("GatewayList", gatewayListJson); |
| | | // if (gatewayListRevertObj.StateCode.ToUpper() == "SUCCESS") { |
| | | // UserConfig.Instance.GatewayList.Clear (); |
| | | // var responseGatewayDataObj = Newtonsoft.Json.JsonConvert.DeserializeObject<List<GatewayRes>> (gatewayListRevertObj.ResponseData.ToString ()); |
| | | // UserConfig.Instance.GatewayList.AddRange (responseGatewayDataObj); |
| | | // UserConfig.Instance.SaveUserConfig (); |
| | | // MainPage.LoginUser.LastTime = DateTime.Now; |
| | | // if (UserConfig.Instance.GatewayList.Count == 0) { |
| | | // Application.RunOnMainThread (() => { |
| | | // UserMiddle.Init (); |
| | | // Close (); |
| | | // }); |
| | | // return; |
| | | // } else { |
| | | // UserConfig.Instance.HomeLists = revertRoomData; |
| | | // MainPage.LoginUser.SaveUserInfo (); |
| | | // UserConfig.Instance.SaveUserConfig (); |
| | | // Scene.Refresh (); |
| | | // A31MusicModel.Refresh (); |
| | | // Application.RunOnMainThread (() => { |
| | | // Close (); |
| | | // UserMiddle.Init (); |
| | | // EquipmentPublicClass.CheckLinkRemote (2); |
| | | // }); |
| | | // } |
| | | // } |
| | | //} |
| | | // |
| | | } else { |
| | | string stateCodeStr = revertObj.StateCode; |
| | | string mes = ""; |
| | | if (stateCodeStr == "NOTVERIFY") { |
| | | //未激活 |
| | | mes = ErrorCode.NOTVERIFY; |
| | | } |
| | | //else if (stateCodeStr == "NOTENABLE") { |
| | | |
| | | // //该用户属于调试账号,并未启用 |
| | | // mes = "用户属于调试账号,并未启用"; |
| | | //} |
| | | else if (stateCodeStr == "USERNAMEORPWDERROR") { |
| | | //账号或密码错误 |
| | | mes = ErrorCode.USERNAMEORPWDERROR; |
| | | } else if (stateCodeStr == "ACCOUNTNOEXISTS") { |
| | | //账号不存在 |
| | | mes = ErrorCode.ACCOUNTNOEXISTS; |
| | | } else if (stateCodeStr == "YOUDATANOISLOCALREGION") { |
| | | //不在本区域,需要重定向区域后再次请求登录 |
| | | if (revertObj.ResponseData == null) { |
| | | return; |
| | | } |
| | | var responseDataObj2 = Newtonsoft.Json.JsonConvert.DeserializeObject<UserLoginLocalRegionRes> (revertObj.ResponseData.ToString ()); |
| | | MainPage.RequestHttpsHost = responseDataObj2.RegionServer; |
| | | //正则处理 |
| | | //MainPage.RequestHttpsHostMqtt = |
| | | SetMqttHost (responseDataObj2.RegionServer); |
| | | |
| | | ////再次登录 |
| | | Login (account, password, accountListDB); |
| | | } else { |
| | | //RequestServerFailed |
| | | mes = ErrorCode.LoginFailed + ErrorCode.Reason + stateCodeStr; |
| | | } |
| | | |
| | | |
| | | if (!string.IsNullOrEmpty (mes)) { |
| | | Application.RunOnMainThread (() => { |
| | | new Alert ("", mes, Language.StringByID (R.MyInternationalizationString.Close)).Show (); |
| | | }); |
| | | } |
| | | |
| | | } |
| | | } |
| | | |
| | | private void SetMqttHost (string URL) { |
| | | string pattern = @"(http|https)://(?<domain>[^(:|/]*)"; |
| | | Regex reg = new Regex (pattern, RegexOptions.IgnoreCase); |
| | | Match m = reg.Match (URL); |
| | | string mResult = m.Groups ["domain"].Value; |
| | | if (!string.IsNullOrEmpty (mResult)) { |
| | | MainPage.RequestHttpsHostMqtt = "https://" + mResult; |
| | | } |
| | | } |
| | | // |
| | | } |
| | | } |