From bbc74a6dae2e90a811b2507c5896fe89aa29ccc0 Mon Sep 17 00:00:00 2001
From: 陈嘉乐 <cjl@hdlchina.com.cn>
Date: 星期三, 08 一月 2020 11:30:46 +0800
Subject: [PATCH] 2020-01-08 1.替换新服务器接口。
---
Crabtree/SmartHome/UI/SimpleControl/Phone/Register/AccountLogin.cs | 385 ++++++++++++++++++++++++++++++++++++++++++------------
1 files changed, 296 insertions(+), 89 deletions(-)
diff --git a/Crabtree/SmartHome/UI/SimpleControl/Phone/Register/AccountLogin.cs b/Crabtree/SmartHome/UI/SimpleControl/Phone/Register/AccountLogin.cs
index 72ab748..0949f63 100644
--- a/Crabtree/SmartHome/UI/SimpleControl/Phone/Register/AccountLogin.cs
+++ b/Crabtree/SmartHome/UI/SimpleControl/Phone/Register/AccountLogin.cs
@@ -3,6 +3,7 @@
using System.Collections.Generic;
using System.Security.Cryptography;
using System.Text;
+using System.Text.RegularExpressions;
namespace Shared.SimpleControl.Phone
{
@@ -18,7 +19,7 @@
var bodyView = new FrameLayout () {
BackgroundColor = SkinStyle.Current.ViewColor
};
- AddChidren (bodyView);
+ AddChidren (bodyView);
if (MainPage.LoginUser != null && MainPage.LoginUser.IsLogin == true) {
this.Close ();
@@ -34,7 +35,7 @@
FrameLayout logoView = new FrameLayout () {
Height = Application.GetRealHeight (400),
};
- bodyView.AddChidren (logoView);
+ bodyView.AddChidren (logoView);
//FrameLayout textView = new FrameLayout () {
// Y = logoView.Bottom,
@@ -49,7 +50,7 @@
//AddChidren (buttonView);
Button btnLogo = new Button () {
- Y = Application.GetRealHeight(30),
+ Y = Application.GetRealHeight (30),
Height = Application.GetRealHeight (430),
UnSelectedImagePath = MainPage.RegisterLogoString,
};
@@ -63,7 +64,7 @@
BackgroundImagePath = "Register/Register_Email_Address.png",
Radius = (uint)Application.GetRealHeight (0),
};
- bodyView.AddChidren (accountView);
+ bodyView.AddChidren (accountView);
var etAccount = new EditText () {
Width = Application.GetRealWidth (400),
@@ -75,7 +76,8 @@
TextColor = SkinStyle.Current.TextColor1,
//Text = account,
#if DEBUG
- Text = "18926269190@189.cn"
+ //Text = "18926269190@189.cn"
+ Text = "721343314@qq.com"
#endif
};
accountView.AddChidren (etAccount);
@@ -107,10 +109,10 @@
Y = accountView.Bottom + Application.GetRealHeight (50),
BackgroundImagePath = "Register/Register_Password_kuang.png",
};
- bodyView.AddChidren (passwrodView);
+ bodyView.AddChidren (passwrodView);
var etPasswrod = new EditText () {
- Width = Application.GetRealWidth (400-73),
+ Width = Application.GetRealWidth (400 - 73),
X = Application.GetRealWidth (100),
PlaceholderTextColor = SkinStyle.Current.PlaceholderTextColor,
PlaceholderText = Language.StringByID (R.MyInternationalizationString.PleaseEnterPassword),
@@ -125,7 +127,7 @@
passwrodView.AddChidren (etPasswrod);
Button btnShowPassword = new Button () {
- X = etPasswrod.Right ,
+ X = etPasswrod.Right,
Y = etPasswrod.Y + Application.GetRealHeight (12),
Width = Application.GetRealWidth (73),
Height = Application.GetRealHeight (60),
@@ -160,7 +162,7 @@
};
etPasswrod.EditorEnterAction += (obj) => {
Application.HideSoftInput ();
- };
+ };
Button btnRegister = new Button () {
Width = Application.GetRealWidth (200),
@@ -176,7 +178,7 @@
Close ();
new AccountRegistration_Crabtree ().Show ();
};
- bodyView.AddChidren (btnRegister);
+ bodyView.AddChidren (btnRegister);
Button btnForgotPassword = new Button () {
Width = Application.GetRealWidth (500 / 2),
@@ -192,13 +194,13 @@
new ForgotPassword ().Show ();
this.Close ();
};
- bodyView.AddChidren (btnForgotPassword);
+ bodyView.AddChidren (btnForgotPassword);
Button btnLogin = new Button () {
Width = Application.GetRealWidth (504),
Height = Application.GetRealHeight (89),
X = Application.GetRealWidth (60),
- Y = btnRegister.Bottom + Application.GetRealHeight(70),
+ Y = btnRegister.Bottom + Application.GetRealHeight (70),
BackgroundColor = SkinStyle.Current.MainColor,
SelectedBackgroundColor = SkinStyle.Current.SelectedColor,
TextID = R.MyInternationalizationString.Login,
@@ -208,7 +210,7 @@
BorderColor = SkinStyle.Current.Transparent,
BorderWidth = 0,
};
- bodyView.AddChidren (btnLogin);
+ bodyView.AddChidren (btnLogin);
btnLogin.MouseDownEventHandler += (sender, e) => {
btnLogin.IsSelected = true;
};
@@ -223,7 +225,7 @@
});
return;
}
- if (string.IsNullOrEmpty (account) ) {
+ if (string.IsNullOrEmpty (account)) {
Application.RunOnMainThread (() => {
new Tip () { Text = "Please enter your user id.", Direction = AMPopTipDirection.Up, CloseTime = 3 }.Show (btnLogo);
});
@@ -244,15 +246,15 @@
MainPage.Loading.Start ("Login...");
}
});
- if (UserConfig.Instance.internetStatus == 0 || !SystemRemote.checeInternet () ) {
+ if (UserConfig.Instance.internetStatus == 0 || !SystemRemote.checeInternet ()) {
Application.RunOnMainThread (() => {
- new Tip () { Text = "Network abnormal, unable to connect to the Internet", Direction = AMPopTipDirection.Down , CloseTime = 3}.Show (btnLogo);
+ new Tip () { Text = "Network abnormal, unable to connect to the Internet", Direction = AMPopTipDirection.Down, CloseTime = 3 }.Show (btnLogo);
});
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 ("閾炬帴鏈嶅姟鍣ㄦ垚鍔�...");
@@ -261,71 +263,11 @@
}
});
- 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 ();
- } else {
- Room.InitAllRoom ();
- }
-
- 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);
- });
- }
- }
- }
- }
+ Login (account, password, accountListDB);
+ } else {
+ MainPage.FailureToServer ();
}
+
} catch (Exception ex) {
MainPage.FailureToServer ();
Console.WriteLine (ex.Message);
@@ -334,20 +276,20 @@
MainPage.Loading.Hide ();
});
}
- }) ;
+ });
};
- etAccount.FoucsChanged += ( sender, e) => {
-//#if __IOS__
+ etAccount.FoucsChanged += (sender, e) => {
+ //#if __IOS__
//btnRegister.Visible = btnForgotPassword.Visible = !e.Focus;
-//#endif
+ //#endif
if (e.Focus) {
if (etAccount.Text == "")
accountList.Clear ();
else
accountList = accountListDB.account.FindAll ((obj) => (obj.Contains (etAccount.Text) && obj != etAccount.Text));
if (accountListView.Parent == null) {
- bodyView.AddChidren (accountListView);
+ bodyView.AddChidren (accountListView);
}
if (accountList.Count > 0) {
accountListView.Visible = e.Focus;
@@ -379,7 +321,7 @@
accountListView.Visible = false;
return;
}
- accountList = accountListDB.account.FindAll ((obj) => (obj.Contains (e) && obj != e));
+ accountList = accountListDB.account.FindAll ((obj) => (obj.Contains (e) && obj != e));
if (accountList.Count == 0) {
accountListView.Visible = false;
return;
@@ -416,6 +358,271 @@
}
-
+
+
+ /// <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;
+ //姝e垯澶勭悊
+ //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;
+ }
+ }
+ //
}
}
\ No newline at end of file
--
Gitblit v1.8.0