From 05ce435c3b58e53eeab04c672affdeeab75f3036 Mon Sep 17 00:00:00 2001
From: gxc <guoxuecheng@guoxuechengdeMacBook-Pro.local>
Date: 星期五, 15 十一月 2019 14:41:39 +0800
Subject: [PATCH] 2019.11.15-1

---
 ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserManagement.cs |  106 ++++++++++++++++++++++++++++++++++-------------------
 1 files changed, 68 insertions(+), 38 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserManagement.cs b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserManagement.cs
index 9b7e97c..7727d38 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserManagement.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserManagement.cs
@@ -17,18 +17,10 @@
         /// <param name="common">Common.</param>
         public void Changed(CommonDevice common)
         {
-            //if (common.Type != ZigBee.Device.DeviceType.OnOffSwitch)
-            //{
-            //    return;
-            //}
-
             Shared.Application.RunOnMainThread(() =>
             {
-                //var dev = common as Panel;
             });
         }
-
-
         /// 鏋勯�犲嚱鏁�
         /// </summary>
         /// <param name="doorLock"></param>
@@ -39,8 +31,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()
         {
@@ -56,7 +98,7 @@
 
             var btnAddFrameLayout = new FrameLayout
             {
-                X = Application.GetRealWidth(829),
+                X = Application.GetRealWidth(829 - 116),
                 Height = Application.GetRealHeight(72),
                 Width = Application.GetRealWidth(190),
             };
@@ -80,10 +122,14 @@
                 TextAlignment = TextAlignment.CenterLeft,
             };
             btnAddFrameLayout.AddChidren(btnUndistributeText);
-
+            if (UserCenterResourse.UserInfo.AuthorityNo != 1)
+            {
+                btnUndistributeIcon.Width = 0;
+                btnUndistributeText.Width = 0;
+            }
             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 +137,25 @@
             btnAddFrameLayout.MouseDownEventHandler += eHandler;
             btnUndistributeText.MouseDownEventHandler += eHandler;
             btnUndistributeIcon.MouseDownEventHandler += eHandler;
-
-            MidFrameLayoutContent();
+            midVerticalScrolViewLayout = new VerticalScrolViewLayout()
+            {
+            };
+            this.midFrameLayout.AddChidren(midVerticalScrolViewLayout);
+            ReadAccountList();
         }
 
         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 +196,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