From 2109463fab2eb1caed189e4f258e0e763c5cea7b Mon Sep 17 00:00:00 2001
From: WJC <wjc@hdlchina.com.cn>
Date: 星期四, 07 十一月 2019 11:58:53 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev-tzy' into dev-wjc

---
 ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserManagement.cs |   93 +++++++++++++++++++++++++++++++---------------
 1 files changed, 63 insertions(+), 30 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserManagement.cs b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserManagement.cs
index dbce5ad..9669fe7 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserManagement.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserManagement.cs
@@ -27,8 +27,6 @@
                 //var dev = common as Panel;
             });
         }
-
-
         /// 鏋勯�犲嚱鏁�
         /// </summary>
         /// <param name="doorLock"></param>
@@ -39,8 +37,58 @@
 
         #region 鈼� 鍙橀噺鐢虫槑__________________________
         ZigBee.Device.DoorLock doorLock;
-        List<Shared.Phone.UserCenter.MemberInfoRes> localAccountList = new List<Shared.Phone.UserCenter.MemberInfoRes> { };
+        VerticalScrolViewLayout midVerticalScrolViewLayout;
         #endregion
+
+        void ReadAccountList()
+        {
+            System.Threading.Tasks.Task.Run(async () =>
+            {
+                Application.RunOnMainThread(() => { CommonPage.Loading.Start("Loading..."); });
+                try
+                {
+                    var localAccountListTemp = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.LocalAccountList();
+                    if (localAccountListTemp != null)
+                    {
+                        doorLock.localAllAccountList.Clear();
+                        doorLock.localAllAccountList = localAccountListTemp;
+                        foreach (var sub in localAccountListTemp)
+                        {
+                            //鍒濆鍖栨潈闄愪俊鎭�
+                            if (doorLock.IsFreezeAccount.ContainsKey(sub.SubAccountDistributedMark) == false)
+                            {
+                                doorLock.IsFreezeAccount.Add(sub.SubAccountDistributedMark, false);
+                            }
+                            if (doorLock.HasRemoteUnlockAccess.ContainsKey(sub.SubAccountDistributedMark) == false)
+                            {
+                                doorLock.HasRemoteUnlockAccess.Add(sub.SubAccountDistributedMark, false);
+                            }
+                            if (doorLock.IsFailedToGetDoorLockInfo.ContainsKey(sub.SubAccountDistributedMark) == false)
+                            {
+                                doorLock.IsFailedToGetDoorLockInfo.Add(sub.SubAccountDistributedMark, false);
+                            }
+                        }
+                        doorLock.ReSave();
+                    }
+                    else
+                    {
+                        Application.RunOnMainThread(() =>
+                        {
+                            new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CloudServerResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(this.btnTip);
+                        });
+                    }
+                }
+                catch { }
+                finally
+                {
+                    Application.RunOnMainThread(() =>
+                    {
+                        MidFrameLayoutContent();
+                        CommonPage.Loading.Hide();
+                    });
+                }
+            });
+        }
 
         public void Show()
         {
@@ -83,7 +131,7 @@
 
             EventHandler<MouseEventArgs> eHandler = (sender, e) =>
             {
-                var undistributeDoorlockUserPage = new Shared.Phone.UserCenter.DoorLock.UndistributeDoorlockUserPage(doorLock, localAccountList);
+                var undistributeDoorlockUserPage = new Shared.Phone.UserCenter.DoorLock.UndistributeDoorlockUserPage(doorLock, doorLock.localAllAccountList);
                 Shared.Phone.UserView.HomePage.Instance.AddChidren(undistributeDoorlockUserPage);
                 Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
                 undistributeDoorlockUserPage.Show();
@@ -91,41 +139,26 @@
             btnAddFrameLayout.MouseDownEventHandler += eHandler;
             btnUndistributeText.MouseDownEventHandler += eHandler;
             btnUndistributeIcon.MouseDownEventHandler += eHandler;
-
-            MidFrameLayoutContent();
+            midVerticalScrolViewLayout = new VerticalScrolViewLayout()
+            {
+            };
+            this.midFrameLayout.AddChidren(midVerticalScrolViewLayout);
+            ReadAccountList();
+            // MidFrameLayoutContent();
         }
 
         async void MidFrameLayoutContent()
         {
-            List<Shared.Phone.UserCenter.MemberInfoRes> SubAccounList = null;
-            if (UserCenterResourse.UserInfo.AuthorityNo == 1 || UserCenterResourse.UserInfo.AuthorityNo == 2)
+            midVerticalScrolViewLayout.RemoveAll();
+            for (int i = 0; i < doorLock.localAllAccountList.Count; i++)
             {
-                SubAccounList = await ZigBee.Device.DoorLock.GetSubAccountByDistributedMark();
-            }
-
-            var masterAccount = new Shared.Phone.UserCenter.MemberInfoRes();
-            masterAccount.Account = Shared.Common.Config.Instance.Account;
-            masterAccount.AccountType = Shared.Common.Config.Instance.AccountType;
-            masterAccount.SubAccountDistributedMark = Shared.Common.Config.Instance.Guid;
-            masterAccount.UserName = UserCenterResourse.UserInfo.UserName;
-            localAccountList.Add(masterAccount);
-            localAccountList.AddRange(SubAccounList);
-
-            var bodyView = new VerticalScrolViewLayout()
-            {
-            };
-            this.midFrameLayout.AddChidren(bodyView);
-
-            doorLock.localAllAccountList = localAccountList;
-            for (int i = 0; i < localAccountList.Count; i++)
-            {
-                var currentAccount = localAccountList[i];
+                var currentAccount = doorLock.localAllAccountList[i];
                 var RowView = new FrameLayout()
                 {
                     Height = Application.GetRealHeight(161),
                     BackgroundColor = Shared.Common.ZigbeeColor.Current.XMTopFrameLayout,
                 };
-                bodyView.AddChidren(RowView);
+                midVerticalScrolViewLayout.AddChidren(RowView);
 
                 var btnText = new Button()
                 {
@@ -166,7 +199,7 @@
                 };
                 RowView.AddChidren(line2);
                 int currentIndex = i;
-                if (currentIndex == localAccountList.Count - 1)
+                if (currentIndex == doorLock.localAllAccountList.Count - 1)
                 {
                     line2.Visible = false;
                 }

--
Gitblit v1.8.0