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/UserView/HomePage.cs | 223 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 223 insertions(+), 0 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserView/HomePage.cs b/ZigbeeApp/Shared/Phone/UserView/HomePage.cs new file mode 100755 index 0000000..32f75f3 --- /dev/null +++ b/ZigbeeApp/Shared/Phone/UserView/HomePage.cs @@ -0,0 +1,223 @@ +锘縰sing System; +using Shared.Common; + +namespace Shared.Phone.UserView +{ + /// <summary> + /// Home page.绗簩鐗堝憖 + /// </summary> + public class HomePage : PageLayout + { + static HomePage homePage; + /// <summary> + /// Gets the instance. + /// </summary> + /// <value>The instance.</value> + public static HomePage Instance + { + get + { + if (homePage == null) + { + homePage = new HomePage { IsShowPoint = false }; + } + return homePage; + } + } + /// <summary> + /// Inits the page. + /// </summary> + public void InitPage() + { + if (0 < ChildrenCount) + { + return; + } + + AddChidren(UserPage.Instance); + UserPage.Instance.InitPage(); + + this.PageChange += (sender, e) => + { + while (e < this.ChildrenCount - 1) + { + this.GetChildren(this.ChildrenCount - 1).RemoveFromParent(); + } + if (e == 0) + { + this.ScrollEnabled = true; + } + }; + + if (Config.Instance.IsLogin) + { + ShowLoginLoadView(); + CommonPage.Loading.Start(); + Action action = async () => + { + //CommonPage.Loading.Start(Language.StringByID(R.MyInternationalizationString.Logining)); + var loginSuccess = await LoginByPWDResultAsync(Config.Instance.Account, Config.Instance.Password); + if (loginSuccess == 1) + { + new System.Threading.Thread(async () => + { + //鐧诲綍鎴愬姛 + var homes = await House.GetHomeLists(); + //鍒锋柊涓汉涓績鐨勫唴瀛樺強绾跨▼ + await UserCenter.UserCenterLogic.InitUserCenterMenmoryAndThread(); + //鍚姩ZigBee + ZigBee.Common.Application.Init(); + + UserCenter.HdlRoomLogic.Current.InitAllRoom(); + + Application.RunOnMainThread(() => + { + CommonPage.Instance.RemoveViewByTag("Login"); + UserPage.Instance.Fresh(); + CommonPage.Loading.Hide(); + }); + }) + { IsBackground = true }.Start(); + } + else + { + //鏈櫥褰曟垚鍔熷脊鍑虹櫥褰曠晫闈� 鍚屾椂闇�瑕佹爣璁颁负鏈櫥褰曠姸鎬� + //Config.Instance.LoginDateTime = new DateTime(1970, 1, 1); + //Config.Instance.Save(); + //var accountLogin = new Device.Account.AccountLogin { }; + //CommonPage.Instance.AddChidren(accountLogin); + //accountLogin.Show(); + //CommonPage.Loading.Hide(); + + //鐧诲綍澶辫触锛屼篃鐩存帴杩涘叆涓婚〉 + new System.Threading.Thread(async () => + { + //鐧诲綍鎴愬姛 + var homes = await House.GetHomeLists(); + //鍒锋柊涓汉涓績鐨勫唴瀛樺強绾跨▼ + await UserCenter.UserCenterLogic.InitUserCenterMenmoryAndThread(); + //鍚姩ZigBee + ZigBee.Common.Application.Init(); + + UserCenter.HdlRoomLogic.Current.InitAllRoom(); + + Application.RunOnMainThread(() => + { + CommonPage.Instance.RemoveViewByTag("Login"); + UserPage.Instance.Fresh(); + CommonPage.Loading.Hide(); + }); + }) + { IsBackground = true }.Start(); + } + }; + //鐧诲綍杩囩洿鎺ュ悗鍙扮櫥褰� + action(); + } + else + { + //鏈櫥褰曞脊鍑虹櫥褰曠晫闈� + var accountLogin = new Login.AccountLogin { }; + Shared.Common.CommonPage.Instance.AddChidren(accountLogin); + accountLogin.Show(); + //accountLogin.ShowForm(); + } + } + + + public void ShowLoginLoadView() + { + var loginLoad = new LoginLoading { }; + CommonPage.Instance.AddChidren(loginLoad); + loginLoad.Show(); + } + + /// <summary> + /// Logins the by PWDA sync. + /// </summary> + /// <returns>The by PWDA sync.</returns> + /// <param name="account">Account.</param> + /// <param name="password">Password.</param> + /// <param name="source">Source.</param> + /// <param name="company">Company.</param> + public async System.Threading.Tasks.Task<int> LoginByPWDAsync(string account, string password, string source = "", int company = 0) + { + var isLoginSuccess = -1; + try + { + var requestObj = new SendDataToServer.LoginObj + { + Account = account, + Password = password, + Source = source, + Company = company + }; + var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject(requestObj); + var revertObj = await CommonPage.Instance.RequestHttpsZigbeeAsync("ZigbeeUsers/Login", System.Text.Encoding.UTF8.GetBytes(requestJson)); + if (revertObj == null) + { + isLoginSuccess = -1; + return isLoginSuccess; + } + var stateCodeStr = revertObj.StateCode.ToUpper(); + //Error 涓嶈兘鐩存帴浠庢湇鍔″櫒鍙栵紝鍙兘鏍规嵁鐘舵�佺爜閫愪竴鍒ゆ柇 + if (stateCodeStr == "SUCCESS") + { + if (revertObj.ResponseData == null) + { + return -1; + } + + var responseDataObj = Newtonsoft.Json.JsonConvert.DeserializeObject<Shared.Common.ResponseEntity.UserLoginRes>(revertObj.ResponseData.ToString()); + var revertData = responseDataObj; + //鏍囪涓婁竴娆℃槸涓嶆槸鍚屼竴涓处鍙风櫥闄� + UserCenter.UserCenterResourse.ResidenceOption.TheSameLoginAccount = Config.Instance.Guid == revertData.Guid; + Config.Instance.Account = revertData.Account; + Config.Instance.Password = password; + Config.Instance.MD5PWD = revertData.MD5PWD; + Config.Instance.Guid = revertData.Guid; + Config.Instance.LoginDateTime = DateTime.Now; + Config.Instance.LoginToken = revertData.Token; + isLoginSuccess = 1; + var resultRegID = await Shared.Common.CommonPage.Instance.PushRegID(); + System.Console.WriteLine($"鍚庡彴鐧诲綍鎴愬姛--{Config.Instance.LoginDateTime}"); + } + else if (stateCodeStr == "YOUDATANOISLOCALREGION") + { + isLoginSuccess = -1; + //涓嶅湪鏈尯鍩燂紝闇�瑕侀噸瀹氬悜鍖哄煙鍚庡啀娆¤姹傜櫥褰� + if (revertObj.ResponseData == null) + { + return isLoginSuccess; + } + var responseDataObj = Newtonsoft.Json.JsonConvert.DeserializeObject<Shared.Common.ResponseEntity.UserLoginLocalRegionRes>(revertObj.ResponseData.ToString()); + CommonPage.RequestHttpsHost = responseDataObj.RegionServer; + } + else + { + isLoginSuccess = -1; + } + } + catch + { + isLoginSuccess = -1; + } + return isLoginSuccess; + } + + /// <summary> + /// 鍚庡彴鐧诲綍 + /// -1 澶辫触 1 鎴愬姛 + /// </summary> + /// <returns>The by PWDA sync.</returns> + /// <param name="account">Account.</param> + /// <param name="password">Password.</param> + /// <param name="source">Source.</param> + /// <param name="company">Company.</param> + public async System.Threading.Tasks.Task<int> LoginByPWDResultAsync(string account, string password, string source = "", int company = 0) + { + var isLoginSuccess = await LoginByPWDAsync(account, password, source, company); + return isLoginSuccess; + } + } +} -- Gitblit v1.8.0