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