From 35a33afeeb29466c20ee39dc34e0468d687afce9 Mon Sep 17 00:00:00 2001
From: 陈嘉乐 <cjl@hdlchina.com.cn>
Date: 星期五, 20 十一月 2020 17:47:38 +0800
Subject: [PATCH] 2020-11-20-1

---
 HDL_ON/UI/UI1-Login/LoginPageBLL.cs | 1044 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 1,044 insertions(+), 0 deletions(-)

diff --git a/HDL_ON/UI/UI1-Login/LoginPageBLL.cs b/HDL_ON/UI/UI1-Login/LoginPageBLL.cs
new file mode 100644
index 0000000..eac7338
--- /dev/null
+++ b/HDL_ON/UI/UI1-Login/LoginPageBLL.cs
@@ -0,0 +1,1044 @@
+锘縰sing System;
+using System.Text.RegularExpressions;
+using System.Threading;
+using System.Collections.Generic;
+using HDL_ON.UI.CSS;
+using Shared;
+using HDL_ON.Entity;
+
+namespace HDL_ON.UI.UI1Login
+{
+    public partial class LoginPage
+    {
+
+        /// <summary>
+        /// 鍔犺浇浜嬩欢
+        /// </summary>
+        void LoadEventList()
+        {
+            LoadPage_SwitchLoginType();
+            LoadMethod_VisiblePassword();
+            LoadPage_SwitchLoginMode();
+            LoadEvent_Login();
+            LoadPage_SelectionEditText();
+            LoadPage_RegisterPage();
+            GetVerificationCode();
+            LoadMethod_ForgetPassword();
+        }
+
+        /// <summary>
+        /// 鐐瑰嚮鎸夐挳鑾峰彇楠岃瘉鐮�
+        /// </summary>
+        void GetVerificationCode()
+        {
+            btnGetVerificationCode.MouseUpEventHandler = (sender, e) =>
+            {
+                if (btnGetVerificationCode.IsSelected)
+                {
+                    string phoneNumber = etAccount.Text.Trim();
+                    if (string.IsNullOrEmpty(phoneNumber))
+                    {
+                        var tip = new Tip()
+                        {
+                            Text = Language.StringByID(StringId.PlsEntryPhoneNumber),
+                            CloseTime = 1,
+                            Direction = AMPopTipDirection.None
+                        };
+                        tip.Show(bodyView);
+
+                        btnAccountViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2;
+                        btnAccountViewBottomLine.Height = Application.GetRealHeight(2);
+                        return;
+                    }
+                    if (!Regex.IsMatch(account, @"^[1]+\d{10}") || (account.Length != 11))
+                    {
+                        var tip = new Tip()
+                        {
+                            Text = Language.StringByID(StringId.PlsEntryCorrectMobilNeumber),
+                            CloseTime = 1,
+                            Direction = AMPopTipDirection.None
+                        };
+                        tip.Show(bodyView);
+
+                        btnAccountViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2;
+                        btnAccountViewBottomLine.Height = Application.GetRealHeight(2);
+                        return;
+                    }
+                    btnGetVerificationCode.IsSelected = false ;
+                    btnGetVerificationCode.TextColor = CSS_Color.PromptingColor1;
+                    int time = 60;
+                    new Thread(() =>
+                    {
+                        while (time > 0)
+                        {
+                            time--;
+                            Application.RunOnMainThread(() =>
+                            {
+                                btnGetVerificationCode.Text = time.ToString() + "s";
+                            });
+                            Thread.Sleep(1000);
+                        }
+                        Application.RunOnMainThread(() =>
+                        {
+                            btnGetVerificationCode.IsSelected = true;
+                            btnGetVerificationCode.TextID = StringId.GetVerificationCode;
+                        });
+                    })
+                    { IsBackground = true }.Start();
+                    new Thread(() =>
+                    {
+                        //鑾峰彇楠岃瘉鐮�
+                        var result = pm.GetLoginVerCode(phoneNumber);
+                        if (result.StateCode.ToUpper() == "SUCCESS")
+                        {
+                        }
+                        //鐧诲綍澶辫触
+                        else
+                        {
+                            string tipStr = "Sever erorr";
+                            switch (result.StateCode.ToUpper())
+                            {
+                                case "USERNAMEORPWDERROR":
+                                    tipStr = Language.StringByID(StringId.LoginFailed_AccountOrPasswordError);
+                                    Application.RunOnMainThread(() =>
+                                    {
+                                        btnPasswordViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2;
+                                        btnPasswordViewBottomLine.Height = Application.GetRealHeight(2);
+                                    });
+                                    break;
+                                case "ACCOUNTNOEXISTS":
+                                    tipStr = Language.StringByID(StringId.ACCOUNTNOEXISTS);
+                                    Application.RunOnMainThread(() =>
+                                    {
+                                        btnAccountViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2;
+                                        btnAccountViewBottomLine.Height = Application.GetRealHeight(2);
+                                    });
+                                    break;
+                                case "SENDFAIL":
+                                    tipStr = Language.StringByID(StringId.FailedToSendVerificationCode);
+                                    Application.RunOnMainThread(() =>
+                                    {
+                                        btnAccountViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2;
+                                        btnAccountViewBottomLine.Height = Application.GetRealHeight(2);
+                                    });
+                                    break;
+                                case "Self:Net_Error":
+                                    tipStr = Language.StringByID(StringId.NetworkAnomaly);
+                                    break;
+                            }
+                            Application.RunOnMainThread(() =>
+                            {
+                                //鎻愮ず鍘熷洜
+                                var tip = new Tip()
+                                {
+                                    Text = tipStr,
+                                    CloseTime = 1,
+                                    Direction = AMPopTipDirection.None
+                                };
+                                tip.Show(bodyView);
+                            });
+                        }
+                    })
+                    { IsBackground = true }.Start();
+                }
+            };
+        }
+
+        /// <summary>
+        /// 鍒囨崲鐧诲綍绫诲瀷
+        /// </summary>
+        void LoadPage_SwitchLoginType()
+        {
+            //閫夋嫨鎵嬫満鐧诲綍
+            btnPhoneLogin.MouseUpEventHandler = (sender, e) =>
+            {
+                if (loginType == 0)
+                    return;
+                etAccount.Text = registerPhone;
+                etPassword.Text = "";
+                #region 鍒囨崲閫変腑鎸夐挳
+                btnEmailLogin.TextColor = CSS_Color.PromptingColor1;
+                btnEmailLogin.TextSize = CSS_FontSize.TextFontSize;
+                btnPhoneLogin.TextColor = CSS_Color.MainColor;
+                btnPhoneLogin.TextSize = CSS_FontSize.EmphasisFontSize_Secondary;
+                etAccount.PlaceholderText = Language.StringByID(StringId.PlsEntryPhoneNumber);
+                #endregion
+
+                #region 鍒囨崲鐧诲綍鏂瑰紡鍙婂浘鏍�
+                loginType = 0;
+                if (btnAccountIcon.Parent != null)
+                {
+                    btnAccountIcon.RemoveFromParent();
+                }
+                accountView.AddChidren(btnGlobalRoaming);
+                //鏄剧ず楠岃瘉鐮佺櫥褰曟柟寮忥紝鎵嬫満鐧诲綍鏈夐獙璇佺爜鐧诲綍
+                btnSwitchLoginMode.Visible = true;
+                #endregion
+
+                #region
+                if (logintMode == 1)
+                {
+                    if (Regex.IsMatch(account, @"^[1]+\d{10}") && (account.Length == 11) && btnGetVerificationCode.Text == Language.StringByID(StringId.GetVerificationCode))
+                    {
+                        btnGetVerificationCode.IsSelected = true;
+                    }
+                    btnSwitchLoginMode.TextID = StringId.PasswordLogin;
+                    //passwordView.AddChidren(btnGetVerificationCode);
+                    btnGetVerificationCode.Visible = true;
+                    etPassword.PlaceholderText = Language.StringByID(StringId.PlsEntryVerificationCode);
+                    btnPasswordIcon.IsSelected = true;
+                    if (btnVisiblePassword.Parent != null)
+                    {
+                        btnVisiblePassword.RemoveFromParent();
+                    }
+                    if (btnDividingLineVertical_PasswordView2.Parent != null)
+                    {
+                        btnDividingLineVertical_PasswordView2.RemoveFromParent();
+                    }
+                    if (btnForgetPassword.Parent != null)
+                    {
+                        btnForgetPassword.RemoveFromParent();
+                    }
+                    //楠岃瘉鐮佷笉闇�瑕侀殣钘�
+                    etPassword.SecureTextEntry = false;
+                }
+                #endregion
+
+            };
+
+            //閫夋嫨閭鐧诲綍
+            btnEmailLogin.MouseUpEventHandler += (sender, e) =>
+            {
+                if (loginType == 1)
+                    return;
+                etAccount.Text = registerEmail;
+                etPassword.Text = "";
+                #region 鍒囨崲閫変腑鎸夐挳
+                btnPhoneLogin.TextColor = CSS_Color.PromptingColor1;
+                btnPhoneLogin.TextSize = CSS_FontSize.TextFontSize;
+                btnEmailLogin.TextColor = CSS_Color.MainColor;
+                btnEmailLogin.TextSize = CSS_FontSize.EmphasisFontSize_Secondary;
+                etAccount.PlaceholderText = Language.StringByID(StringId.PlsEntryEmailAddress);
+                #endregion
+
+                #region 鍒囨崲鐧诲綍绫诲瀷鍙婂浘鏍�
+                loginType = 1;
+                if (btnGlobalRoaming.Parent != null)
+                {
+                    btnGlobalRoaming.RemoveFromParent();
+                }
+                accountView.AddChidren(btnAccountIcon);
+                #endregion
+
+                //閭鍙湁瀵嗙爜鐧诲綍妯″紡
+                //logintMode = 0;
+                //瀵嗙爜鐧诲綍
+                btnSwitchLoginMode.TextID = StringId.VerificationCodeLogin;
+                passwordView.AddChidren(btnVisiblePassword);
+                passwordView.AddChidren(btnDividingLineVertical_PasswordView2);
+                passwordView.AddChidren(btnForgetPassword);
+                btnPasswordIcon.IsSelected = false;
+
+                //if (btnGetVerificationCode.Parent != null)
+                //{
+                    //btnGetVerificationCode.RemoveFromParent();
+                    btnGetVerificationCode.Visible = false;
+                //}
+                //闅愯棌瀵嗙爜
+                etPassword.SecureTextEntry = true;
+                //闅愯棌楠岃瘉鐮佺櫥褰曟柟寮忥紝閭鐧诲綍娌℃湁楠岃瘉鐮佺櫥褰�
+                btnSwitchLoginMode.Visible = false;
+            };
+        }
+
+        /// <summary>
+        /// 鍒囨崲鐧诲綍鏂瑰紡
+        /// 楠岃瘉鐮�/瀵嗙爜
+        /// </summary>
+        void LoadPage_SwitchLoginMode()
+        {
+            btnSwitchLoginMode.MouseUpEventHandler = (sender, e) =>
+            {
+                logintMode = logintMode == 0 ? 1 : 0;
+                //娓呴櫎瀵嗙爜妗嗘枃鏈暟鎹�
+                etPassword.Text = "";
+                //瀵嗙爜鐧诲綍
+                if (logintMode == 0)
+                {
+                    btnSwitchLoginMode.TextID = StringId.VerificationCodeLogin;
+                    passwordView.AddChidren(btnVisiblePassword);
+                    passwordView.AddChidren(btnDividingLineVertical_PasswordView2);
+                    etPassword.PlaceholderText = Language.StringByID(StringId.PlsEntryPassword);
+                    passwordView.AddChidren(btnForgetPassword);
+                    btnPasswordIcon.IsSelected = false;
+                    //if (btnGetVerificationCode.Parent != null)
+                    //{
+                        //btnGetVerificationCode.RemoveFromParent();
+                        btnGetVerificationCode.Visible = false;
+                    //}
+                    //闅愯棌瀵嗙爜
+                    etPassword.SecureTextEntry = true;
+                }
+                //楠岃瘉鐮佺櫥褰�
+                else if (logintMode == 1)
+                {
+                    if (Regex.IsMatch(account, @"^[1]+\d{10}") && (account.Length == 11) && btnGetVerificationCode.Text == Language.StringByID(StringId.GetVerificationCode))
+                    {
+                        btnGetVerificationCode.IsSelected = true;
+                    }
+                    btnSwitchLoginMode.TextID = StringId.PasswordLogin;
+                    //passwordView.AddChidren(btnGetVerificationCode);
+                    btnGetVerificationCode.Visible = true;
+                    etPassword.PlaceholderText = Language.StringByID(StringId.PlsEntryVerificationCode);
+                    btnPasswordIcon.IsSelected = true;
+                    if (btnVisiblePassword.Parent != null)
+                    {
+                        btnVisiblePassword.RemoveFromParent();
+                    }
+                    if (btnDividingLineVertical_PasswordView2.Parent != null)
+                    {
+                        btnDividingLineVertical_PasswordView2.RemoveFromParent();
+                    }
+                    if (btnForgetPassword.Parent != null)
+                    {
+                        btnForgetPassword.RemoveFromParent();
+                    }
+                    //楠岃瘉鐮佷笉闇�瑕侀殣钘�
+                    etPassword.SecureTextEntry = false;
+                }
+            };
+        }
+
+        /// <summary>
+        /// 鏂囨湰妗嗙劍鐐瑰彉鍖栦簨浠�
+        /// </summary>
+        void LoadPage_SelectionEditText()
+        {
+            //褰撶劍鐐瑰湪璐﹀彿鏂囨湰妗嗘椂锛屾枃鏈搴曠嚎鐐逛寒
+            etAccount.FoucsChanged = (sender, e) =>
+            {
+                if (etAccount.Foucs)
+                {
+                    btnAccountViewBottomLine.BackgroundColor = CSS_Color.MainColor;
+                    btnAccountViewBottomLine.Height = Application.GetRealHeight(2);
+                }
+                else
+                {
+                    btnAccountViewBottomLine.BackgroundColor = CSS_Color.DividingLineColor;
+                    btnAccountViewBottomLine.Height = Application.GetRealHeight(1);
+                    account = etAccount.Text.Trim();
+                    if (loginType == 0)
+                    {
+                        registerPhone = account;
+                    }
+                    else
+                    {
+                        registerEmail = account;
+                    }
+                    if (account.Length == 0)
+                        return;
+                    if (loginType == 0)
+                    {
+                        if (!Regex.IsMatch(account, @"^[1]+\d{10}") || (account.Length != 11))
+                        {
+                            var tip = new Tip()
+                            {
+                                Text = Language.StringByID(StringId.PlsEntryCorrectMobilNeumber),
+                                CloseTime = 1,
+                                Direction = AMPopTipDirection.None
+                            };
+                            tip.Show(bodyView);
+
+                            btnAccountViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2;
+                            btnAccountViewBottomLine.Height = Application.GetRealHeight(2);
+                        }
+                        else
+                        {
+                            if (btnGetVerificationCode.Text == Language.StringByID(StringId.GetVerificationCode))
+                            {
+                                btnGetVerificationCode.IsSelected = true;
+                            }
+                        }
+                    }
+                    else
+                    {
+                        if (!Regex.IsMatch(account, "([a-zA-Z0-9_\\.\\-])+\\@(([a-zA-Z0-9\\-])+\\.)+([a-zA-Z0-9]{2,5})+"))
+                        {
+                            var tip = new Tip()
+                            {
+                                Text = Language.StringByID(StringId.PlsEntryCorrectEmailAddress),
+                                CloseTime = 1,
+                                Direction = AMPopTipDirection.None
+                            };
+                            tip.Show(bodyView);
+                            btnAccountViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2;
+                            btnAccountViewBottomLine.Height = Application.GetRealHeight(2);
+                        }
+                    }
+                }
+            };
+            //褰撶劍鐐瑰湪瀵嗙爜鏂囨湰妗嗘椂锛屾枃鏈搴曠嚎鐐逛寒
+            etPassword.FoucsChanged = (sender, e) =>
+            {
+                if (etPassword.Foucs)
+                {
+                    btnPasswordViewBottomLine.BackgroundColor = CSS_Color.MainColor;
+                    btnPasswordViewBottomLine.Height = Application.GetRealHeight(2);
+                }
+                else
+                {
+                    btnPasswordViewBottomLine.BackgroundColor = CSS_Color.DividingLineColor;
+                    btnPasswordViewBottomLine.Height = Application.GetRealHeight(1);
+                }
+            };
+
+            //褰撶劍鐐瑰湪璐﹀彿鏂囨湰妗嗘椂锛岀偣鍑婚敭鐩樺洖鎾ゆ寜閿紝瑙﹀彂鐨勪簨浠�
+            etAccount.EditorEnterAction += (obj) =>
+            {
+                etPassword.Foucs = true;
+            };
+            //褰撶劍鐐瑰湪瀵嗙爜鏂囨湰妗嗘椂锛岀偣鍑婚敭鐩樺洖鎾ゆ寜閿紝瑙﹀彂鐨勪簨浠�
+            etPassword.EditorEnterAction += (obj) =>
+            {
+                Application.HideSoftInput();
+            };
+            etPassword.MouseUpEventHandler = (sender, e) =>
+            {
+                etPassword.Foucs = true;
+            };
+
+        }
+
+        /// <summary>
+        /// 闅愯棌/鏄剧ず瀵嗙爜
+        /// </summary>
+        void LoadMethod_VisiblePassword()
+        {
+            btnVisiblePassword.MouseUpEventHandler += (sender, e) =>
+            {
+                btnVisiblePassword.IsSelected = !btnVisiblePassword.IsSelected;
+                if (btnVisiblePassword.IsSelected)
+                {
+                    etPassword.SecureTextEntry = false;
+                }
+                else
+                {
+                    etPassword.SecureTextEntry = true;
+                }
+            };
+        }
+
+        /// <summary>
+        /// 鐧诲綍鎸夐挳鐐瑰嚮浜嬩欢
+        /// </summary>
+        void LoadEvent_Login()
+        {
+            btnLogin.MouseUpEventHandler += (sender, e) =>
+            {
+                if (btnLogin.IsSelected)
+                {
+                    account = etAccount.Text.Trim();
+                    password = etPassword.Text.Trim();
+
+                    if (loginType == 0)
+                    {
+                        if (!Regex.IsMatch(account, @"^[1]+\d{10}") && account.Length == 11)
+                        {
+                            var tip = new Tip()
+                            {
+                                Text = Language.StringByID(StringId.PlsEntryCorrectMobilNeumber),
+                                CloseTime = 1,
+                                Direction = AMPopTipDirection.None
+                            };
+                            tip.Show(bodyView);
+                            return;
+                        }
+                    }
+                    else
+                    {
+                        if (!Regex.IsMatch(account, "([a-zA-Z0-9_\\.\\-])+\\@(([a-zA-Z0-9\\-])+\\.)+([a-zA-Z0-9]{2,5})+"))
+                        {
+                            var tip = new Tip()
+                            {
+                                Text = Language.StringByID(StringId.PlsEntryCorrectEmailAddress),
+                                CloseTime = 1,
+                                Direction = AMPopTipDirection.None
+                            };
+                            tip.Show(bodyView);
+                            return;
+                        }
+                    }
+
+                    //鍒涘缓鐧诲綍绾跨▼
+                    var loginThread = LoadThread_Login();
+                    waitPage = new Loading();
+                    new PublicAssmebly().LoadPage_WaitPage(loginThread, bodyView, waitPage);
+                }
+            };
+            #region 褰撹处鍙峰瘑鐮侀兘杈撳叆鏃讹紝鎵嶈兘鐐瑰嚮鐧诲綍鎸夐挳
+            etAccount.TextChangeEventHandler = (sender, e) =>
+            {
+                account = etAccount.Text.Trim();
+                if (account.Length > 0 && etPassword.Text.Trim().Length > 0)
+                {
+                    btnLogin.IsSelected = true;
+                }
+                else
+                {
+                    btnLogin.IsSelected = false;
+                }
+                if (Regex.IsMatch(account, @"^[1]+\d{10}") )//&& account.Length == 11)
+                {
+                    btnGetVerificationCode.IsSelected = true;
+                    btnGetVerificationCode.TextColor = CSS_Color.MainBackgroundColor;
+                }
+                else
+                {
+                    btnGetVerificationCode.IsSelected = false;
+                    btnGetVerificationCode.TextColor = CSS_Color.PromptingColor1;
+                }
+            };
+            etPassword.TextChangeEventHandler += (sender, e) =>
+            {
+                if (etAccount.Text.Trim().Length > 0 && etPassword.Text.Trim().Length > 0)
+                {
+                    btnLogin.IsSelected = true;
+                }
+                else
+                {
+                    btnLogin.IsSelected = false;
+                }
+            };
+            #endregion
+        }
+
+        /// <summary>
+        /// 鍔犺浇鐧诲綍绾跨▼
+        /// </summary>
+        Thread LoadThread_Login()
+        {
+            var loginThread = new Thread(() =>
+            {
+                try
+                {
+                    //鐧诲綍
+                    var loginResult = LoadMethod_Login();
+                    if( !string.IsNullOrEmpty (verAccount))//楠岃瘉鐧诲綍璐﹀彿
+                    {
+                        Application.RunOnMainThread(() =>
+                        {
+                            if (verAccount == etPassword.Text.Trim())
+                            {
+                                //璺宠浆椤甸潰----
+                                MainPage.GoUserPage();
+                                return;
+                            }
+                        });
+                    }
+                    if (loginResult)
+                    {
+                        //鑾峰彇浣忓畢淇℃伅
+                        var getResidencesResult = LoadMethod_GetResidences();
+                        if (getResidencesResult)
+                        {
+                            /*
+                             * Wait : 鎺ㄩ�佹敞鍐�
+                             */
+
+                            /*
+                             鏌ョ湅鏈湴鏄惁瀛樺湪鏁版嵁
+                             瀛樺湪鍒欏鍑�
+                             */
+                            var isExis = FileUtils.IsExisFolder(DB_ResidenceData.residenceData.CurReginID);
+                            if (isExis)
+                            {
+                                FileUtils.DeleteAllFile();
+                                string regionRootPath = FileUtils.CreateRegionBackup(DB_ResidenceData.residenceData.CurReginID);
+                                FileUtils.RestoreRegionFiles(regionRootPath);
+                                DB_ResidenceData.residenceData.EixtAccount();
+                                OnAppConfig.Instance.RefreshUserConfig();
+                                DB_ResidenceData.InitRoomFunction();
+                            }
+                            if (MainPage.LoginUser.userEmailInfo == "464027401@qq.com")
+                            {
+                                DB_ResidenceData.residenceData.floors.Add(new Floor() { name = "1F", sid = "09888" });
+                                var r111 = new Room() { sid = "0001", name = "Room-1", floorId = "09888", backgroundImage = "Classification/Room/Roombg.png" };
+                                DB_ResidenceData.rooms.Add(r111);
+                                DB_ResidenceData.residenceData.floors.Add(new Floor() { sid = "000022222", name = "1F" });
+                                r111.SaveRoomData();
+                                new AC()
+                                {
+                                    sid = "030101123456780604010001ABCD",
+                                    name = "绌鸿皟",
+                                    function = new List<Trait>() {
+                                                                new Trait { name="on_off", max=1,min = 0, value_key= new List<string> { "on","off"} },
+                                                                new Trait { name="mode", max = 2,min =0,value_key = new List<string>{ "auto", "heat", "cool","dry" } },
+                                                                new Trait { name = "fan",max = 3,min =0,value_key = new List<string>{ "low", "medium", "high" ,"auto"} },
+                                                                new Trait { name = "set_temperature", max = 32,min=16,value_key = new List<string>{"up","down" } },
+                                                            },
+                                    roomIdList = new List<string>() { "0001" },
+                                    lastState = "鍒跺喎 涓 18掳C",
+                                    bus_Data = new BusData
+                                    {
+                                        SubnetID = 42,
+                                        DeviceID = 8,
+                                        LoopID = 1,
+                                    },
+                                }.SaveFunctionData();
+                                new Light()
+                                {
+                                    sid = "030101123456780202020002ABCD",
+                                    name = "璋冨厜鐏�",
+                                    function = new List<Trait>() {
+                                                                new Trait { name="brightness", max=100,min = 0, value_key= new List<string> { "up","down"} },
+                                                            },//"brightness",
+                                    roomIdList = new List<string>() { "0001" },
+                                    lastState = "20%",
+                                    bus_Data = new BusData
+                                    {
+                                        SubnetID = 42,
+                                        DeviceID = 9,
+                                        LoopID = 1,
+                                    },
+
+                                }.SaveFunctionData();
+                                new Curtain()
+                                {
+                                    sid = "030101123456780303010003ABCD",
+                                    name = "绐楀笜妯″潡",
+                                    roomIdList = new List<string>() { "0001" },
+                                    function = new List<Trait>() {
+                                                                new Trait { name="on_off", max=2,min = 0, value_key= new List<string> { "on","off","stop"} },
+                                                            },// "curtain",
+                                    lastState = "寮�",
+                                    bus_Data = new BusData
+                                    {
+                                        SubnetID = 42,
+                                        DeviceID = 7,
+                                        LoopID = 1,
+                                    },
+                                }.SaveFunctionData();
+                                new Curtain()
+                                {
+                                    sid = "030101123456780303030011ABCD",
+                                    name = "寮�鍚堝笜",
+                                    roomIdList = new List<string>() { "0001" },
+                                    function = new List<Trait>() {
+                                                                new Trait { name="on_off", max=100,min = 0, value_key= new List<string> { "on","off","stop"} },
+                                                            },//"curtaintype",
+                                    lastState = "20%",
+                                    bus_Data = new BusData
+                                    {
+                                        SubnetID = 42,
+                                        DeviceID = 7,
+                                        LoopID = 11,
+                                    },
+                                }.SaveFunctionData();
+                                new Curtain()
+                                {
+                                    sid = "030101123456780503040012ABCD",
+                                    name = "鍗峰笜",
+                                    roomIdList = new List<string>() { "0001" },
+                                    function = new List<Trait>() {
+                                                                new Trait { name="on_off", max=2,min = 0, value_key= new List<string> { "on","off","stop"} },
+                                                                new Trait { name="percent", max=100,min = 0, value_key= new List<string> { "percent" } },
+
+                                                            },// "rollingshutter",
+                                    lastState = "20%",
+                                    bus_Data = new BusData
+                                    {
+                                        SubnetID = 42,
+                                        DeviceID = 17,
+                                        LoopID = 1,
+                                    },
+                                }.SaveFunctionData();
+                                new FloorHeating()
+                                {
+                                    sid = "030101123456780404020004ABCD",
+                                    name = "鍦扮儹",
+                                    roomIdList = new List<string>() { "0001" },
+                                    function = new List<Trait>() {
+                                                                new Trait { name="on_off", max=1,min = 0, value_key= new List<string> { "on","off"} },
+                                                                new Trait { name="mode", max = 2,min =0,value_key = new List<string>{ "normal", "day", "night","timer","away" } },
+                                                                new Trait { name = "set_temperature", max = 32,min=5,value_key = new List<string>{"up","down" } },
+                                                            },//
+                                    lastState = "鑷姩 25掳C",
+                                    bus_Data = new BusData
+                                    {
+                                        SubnetID = 111,
+                                        DeviceID = 12,
+                                        LoopID = 1
+                                    }
+                                }.SaveFunctionData();
+                                new Light()
+                                {
+                                    sid = "030101123456780202010005ABCD",
+                                    name = "鍚婄伅",
+                                    function = new List<Trait>() {
+                                                                new Trait { name="on_off", max=100,min = 0, value_key= new List<string> { "on","off"} },
+                                                            },//"on_off",
+                                    roomIdList = new List<string>() { "0001" },
+                                    bus_Data = new BusData
+                                    {
+                                        SubnetID = 42,
+                                        DeviceID = 6,
+                                        LoopID = 1,
+                                    },
+                                }.SaveFunctionData();
+                                new Light()
+                                {
+                                    sid = "030101123456780202040006ABCD",
+                                    name = "RGB鐏�",
+                                    function = new List<Trait>() {
+                                                                new Trait { name="brightness", max=100,min = 0, value_key= new List<string> { "on","off"} },
+                                                                new Trait { name="color", max=100,min = 0, value_key= new List<string> { "255", "255", "255" } },
+                                                            },
+                                    roomIdList = new List<string>() { "0001" },
+                                    bus_Data = new BusData
+                                    {
+                                        SubnetID = 42,
+                                        DeviceID = 4,
+                                        LoopID = 1,
+                                    },
+                                }.SaveFunctionData();
+                                new Fan()
+                                {
+                                    sid = "030101123456781010020006ABCD",
+                                    name = "椋庢墖",
+                                    function = new List<Trait>() {
+                                                            new Trait { name="on_off", max=1,min = 0, value_key= new List<string> { "on","off"} },
+                                                            new Trait { name="percent", max=7,min = 0, value_key= new List<string> { "percent" } },
+                                                        },
+                                    roomIdList = new List<string>() { "0001" },
+                                    bus_Data = new BusData
+                                    {
+                                        SubnetID = 142,
+                                        DeviceID = 4,
+                                        LoopID = 11,
+                                    },
+                                }.SaveFunctionData();
+                                new TV()
+                                {
+                                    sid = "030101123456781010020006ABCD",
+                                    name = "鐢佃",
+                                    function = new List<Trait>() {
+                                                            new Trait { name="on_off", max=1,min = 0, value_key= new List<string> { "on","off"} },
+                                                        },
+                                    roomIdList = new List<string>() { "0001" },
+                                    bus_Data = new BusData
+                                    {
+                                        SubnetID = 142,
+                                        DeviceID = 4,
+                                        LoopID = 111,
+                                    },
+                                }.SaveFunctionData();
+                                new SwitchSocket()
+                                {
+                                    sid = "030101123456780101020006ABCD",
+                                    name = "鎻掑骇",
+                                    function = new List<Trait>() {
+                                                            new Trait { name="on_off", max=1,min = 0, value_key= new List<string> { "on","off"} },
+                                                        },
+                                    roomIdList = new List<string>() { "0001" },
+                                    bus_Data = new BusData
+                                    {
+                                        SubnetID = 42,
+                                        DeviceID = 6,
+                                        LoopID = 1,
+                                    },
+                                }.SaveFunctionData();
+                                new Sensor()
+                                {
+                                    sid = "030101123456781005060006ABCD",
+                                    name = "PM2.5",
+                                    roomIdList = new List<string>() { "0001" },
+                                    function = new List<Trait>() {
+                                                            new Trait { name="values", max=1,min = 0, value_key= new List<string> { "22"} },
+                                                        },
+                                    bus_Data = new BusData
+                                    {
+                                        SubnetID = 111,
+                                        DeviceID = 15,
+                                        LoopID = 1,
+                                    },
+                                }.SaveFunctionData();
+                                new Sensor()
+                                {
+                                    sid = "030101123456781005070006ABCD",
+                                    name = "CO2",
+                                    roomIdList = new List<string>() { "0001" },
+                                    function = new List<Trait>() {
+                                                            new Trait { name="values", max=1,min = 0, value_key= new List<string> { "1352"} },
+                                                        },
+                                    bus_Data = new BusData
+                                    {
+                                        SubnetID = 111,
+                                        DeviceID = 15,
+                                        LoopID = 1,
+                                    },
+                                }.SaveFunctionData();
+                                new Sensor()
+                                {
+                                    sid = "030101123456781005020006ABCD",
+                                    name = "娓╁害",
+                                    roomIdList = new List<string>() { "0001" },
+                                    function = new List<Trait>() {
+                                                            new Trait { name="values", max=1,min = 0, value_key= new List<string> { "28"} },
+                                                        },
+                                    bus_Data = new BusData
+                                    {
+                                        SubnetID = 111,
+                                        DeviceID = 15,
+                                        LoopID = 1,
+                                    },
+                                }.SaveFunctionData();
+                                new Sensor()
+                                {
+                                    sid = "030101123456781005050006ABCD",
+                                    name = "TVOC",
+                                    roomIdList = new List<string>() { "0001" },
+                                    function = new List<Trait>() {
+                                                            new Trait { name="values", max=1,min = 0, value_key= new List<string> { "0.3"} },
+                                                        },
+                                    bus_Data = new BusData
+                                    {
+                                        SubnetID = 111,
+                                        DeviceID = 15,
+                                        LoopID = 1,
+                                    },
+                                }.SaveFunctionData();
+                                new Sensor()
+                                {
+                                    sid = "030101123456781005030006ABCD",
+                                    name = "婀垮害",
+                                    roomIdList = new List<string>() { "0001" },
+                                    function = new List<Trait>() {
+                                                            new Trait { name="values", max=1,min = 0, value_key= new List<string> { "15"} },
+                                                        },
+                                    bus_Data = new BusData
+                                    {
+                                        SubnetID = 111,
+                                        DeviceID = 15,
+                                        LoopID = 1,
+                                    },
+                                }.SaveFunctionData();
+                                DB_ResidenceData.residenceData.SaveResidenceData();
+                            }
+                            Application.RunOnMainThread(() =>
+                            {
+                                //璺宠浆椤甸潰----
+                                MainPage.GoUserPage();
+                            });
+                        }
+                    }
+                }
+                catch (Exception ex)
+                {
+                    MainPage.Log($"LoginPage : {ex.Message}");
+                }
+                finally
+                {
+                    Application.RunOnMainThread(() =>
+                    {
+                        if (waitPage != null)
+                        {
+                            waitPage.RemoveFromParent();
+                            waitPage = null;
+                        }
+
+                    });
+                }
+            })
+            { IsBackground = true };
+            return loginThread;
+        }
+        /// <summary>
+        /// 璋冪敤鐧诲綍鎺ュ彛鐧诲綍
+        /// </summary>
+        bool LoadMethod_Login()
+        {
+            var result = false;
+            ResponsePack loginResult;
+            if (logintMode == 0 || loginType == 1)
+            {
+                //璋冪敤鐧诲綍鎺ュ彛
+                loginResult = pm.LoginByPassword(account, password);
+            }
+            else
+            {
+                //璋冪敤楠岃瘉鐮佺櫥褰曟帴鍙�
+                loginResult = pm.LoginValidCode(account, password);
+            }
+            if (loginResult.StateCode.ToUpper() == "SUCCESS")
+            {
+                var loginDataStr = Newtonsoft.Json.Linq.JObject.FromObject(loginResult.ResponseData);
+
+                //璁板綍鐢ㄦ埛鏁版嵁
+                MainPage.LoginUser = new UserInfo
+                {
+                    ID = (int)loginDataStr.GetValue("UserID"),
+                    masterID = (int)loginDataStr.GetValue("MainUserID"),
+                    accountType = (int)loginDataStr.GetValue("UserType"),
+                    loginTokenString = loginDataStr.GetValue("Token").ToString(),
+                    accountString = account,
+                    password = password,
+                    lastTime = DateTime.Now,
+                    userName = loginDataStr.GetValue("Remark").ToString(),
+                };
+                MainPage.LoginUser.SaveUserInfo();
+                MainPage.Log("鐧诲綍鎴愬姛銆�");
+                result = true;
+                //鑾峰彇鐢ㄦ埛淇℃伅
+                new Thread(() =>
+                {
+                    pm.GetUserInfo();
+                })
+                { IsBackground = true }.Start();
+            }
+            //鐧诲綍澶辫触
+            else
+            {
+                string tipStr = "Sever erorr";
+                switch (loginResult.StateCode)
+                {
+                    case "ValidCodeAndPhoneNoEqual":
+                        tipStr = Language.StringByID(StringId.VerificationCodeError);
+                        Application.RunOnMainThread(() =>
+                        {
+                            btnPasswordViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2;
+                            btnPasswordViewBottomLine.Height = Application.GetRealHeight(2);
+                        });
+                        break;
+                    case "USERNAMEORPWDERROR":
+                        tipStr = Language.StringByID(StringId.LoginFailed_AccountOrPasswordError);
+                        Application.RunOnMainThread(() =>
+                        {
+                            btnPasswordViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2;
+                            btnPasswordViewBottomLine.Height = Application.GetRealHeight(2);
+                        });
+                        break;
+                    case "ACCOUNTNOEXISTS":
+                        tipStr = Language.StringByID(StringId.ACCOUNTNOEXISTS);
+                        Application.RunOnMainThread(() =>
+                        {
+                            btnAccountViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2;
+                            btnAccountViewBottomLine.Height = Application.GetRealHeight(2);
+                        });
+                        break;
+                    case "NoRecord":
+                        tipStr = Language.StringByID(StringId.PlsGetTheVerificationCode);
+                        break;
+                    case "Self:Net_Error":
+                        tipStr = Language.StringByID(StringId.NetworkAnomaly);
+                        break;
+                }
+                //璐﹀彿鎴栬�呭瘑鐮侀敊璇�
+                Application.RunOnMainThread(() =>
+                {
+                    waitPage.Hide();
+                    //鎻愮ず鍘熷洜
+                    var tip = new Tip()
+                    {
+                        Text = tipStr,
+                        CloseTime = 1,
+                        Direction = AMPopTipDirection.None
+                    };
+                    tip.Show(bodyView);
+                });
+            }
+            return result;
+        }
+
+        /// <summary>
+        /// 鑾峰彇浣忓畢鍒楄〃
+        /// </summary>
+        bool LoadMethod_GetResidences()
+        {
+            var result = false;
+            var responsePack = pm.GetHomePager();
+
+            if (responsePack == "Success")
+            {
+                result = true;
+            }
+            else
+            {
+                var tipStr = "Server erorr";
+                switch (responsePack)
+                {
+                    case "NoLogin":
+                        tipStr = Language.StringByID(StringId.InvalidLoginCertificate);
+                        break;
+                }
+                Application.RunOnMainThread(() =>
+                {
+                    //鎻愮ず鍘熷洜
+                    var tip = new Tip()
+                    {
+                        Text = tipStr,
+                        CloseTime = 1,
+                        Direction = AMPopTipDirection.None
+                    };
+                    tip.Show(bodyView);
+                });
+            }
+            return result;
+        }
+
+        /// <summary>
+        /// 鍔犺浇娉ㄥ唽鐣岄潰
+        /// </summary>
+        void LoadPage_RegisterPage()
+        {
+            btnRegister.MouseUpEventHandler += (sender, e) =>
+            {
+                //鍥炶皟浜嬩欢
+                //Action callBackAction = () =>
+                //{
+                //    Application.RunOnMainThread(() =>
+                //    {
+                //        try
+                //        {
+                //        }
+                //        catch (Exception ex)
+                //        {
+                //            MainPage.Log($"login callBackAction : {ex.Message}");
+                //        }
+                //    });
+                //};
+
+                var registerPage = new RegisterPage();
+                registerPage.Show();
+                registerPage.ShowDialog();
+            };
+        }
+
+        /// <summary>
+        /// 蹇樿瀵嗙爜
+        /// </summary>
+        void LoadMethod_ForgetPassword()
+        {
+            btnForgetPassword.MouseUpEventHandler += (sender, e) =>
+            {
+                Action<string> callBackAction = (callBackPar_Action) =>
+                {
+                    Application.RunOnMainThread(() =>
+                    {
+                        try
+                        {
+                            etAccount.Text = callBackPar_Action;
+                        }
+                        catch (Exception ex)
+                        {
+                            MainPage.Log($"login callBackAction : {ex.Message}");
+                        }
+                    });
+                };
+                var forgetPasswordDialog = new ForgetPasswordPage(callBackAction);
+                forgetPasswordDialog.Show();
+                forgetPasswordDialog.ShowDialog();
+
+            };
+        }
+    }
+}
\ No newline at end of file

--
Gitblit v1.8.0