From 23fb45dd846ed8b62304c408c6bbe64265d4ac8b Mon Sep 17 00:00:00 2001
From: 黄学彪 <hxb@hdlchina.com.cn>
Date: 星期五, 20 十二月 2019 18:57:16 +0800
Subject: [PATCH] 代码合并

---
 ZigbeeApp/Shared/Phone/UserCenter/DoorLock/MemberFrozenPage.cs |  348 ++++++++++++++++++++++++++++++++++------------------------
 1 files changed, 204 insertions(+), 144 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/MemberFrozenPage.cs b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/MemberFrozenPage.cs
index c5f73f9..0386a10 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/MemberFrozenPage.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/MemberFrozenPage.cs
@@ -21,8 +21,30 @@
         #region 鈼� 鍙橀噺鐢虫槑__________________________
         ZigBee.Device.DoorLock doorLock;
         Shared.Phone.UserCenter.MemberInfoRes curAccountObj;
-        VerticalScrolViewLayout bodyView;
+        VerticalRefreshLayout bodyView;
         #endregion
+
+        void ReadDoorLockUserInfo()
+        {
+            System.Threading.Tasks.Task.Run(async () =>
+            {
+                try
+                {
+                    var list = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetDoorLockAllAcountUserlist(doorLock);
+                    var result = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetDoorLockOperateAccess(doorLock, curAccountObj.SubAccountDistributedMark);
+                    var result1 = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetDoorLockUnlockAccess(doorLock, curAccountObj.SubAccountDistributedMark);
+                }
+                catch { }
+                finally
+                {
+                    Application.RunOnMainThread(() =>
+                    {
+                        MidRefresh();
+                        bodyView.EndHeaderRefreshing();
+                    });
+                }
+            });
+        }
 
         /// <summary>
         /// UI鏄剧ず 
@@ -48,12 +70,17 @@
             this.btnBackFrameLayout.MouseUpEventHandler += eHandlerBack;
             this.MidFrameLayout(this);
 
-            bodyView = new VerticalScrolViewLayout()
+            bodyView = new VerticalRefreshLayout()
             {
             };
             this.midFrameLayout.AddChidren(bodyView);
+            MidRefresh();
 
-            ReadDoorLockUserInfo();
+            bodyView.BeginHeaderRefreshingAction += () =>
+            {
+                bodyView.BeginHeaderRefreshing();
+                ReadDoorLockUserInfo();
+            };
         }
 
         public async void MidRefresh()
@@ -200,10 +227,23 @@
                         }
                     }
                 };
-                btnRightFrameLayout.MouseUpEventHandler += eHandler;
-                btnRight.MouseUpEventHandler += eHandler;
-                RowView.MouseUpEventHandler += eHandler;
-                btnText.MouseUpEventHandler += eHandler;
+                if (i == 0)
+                {
+                    btnRightFrameLayout.MouseUpEventHandler += eHandler;
+                    btnRight.MouseUpEventHandler += eHandler;
+                    RowView.MouseUpEventHandler += eHandler;
+                    btnText.MouseUpEventHandler += eHandler;
+                }
+                else if (i == 1)
+                {
+                    btnRightFrameLayout.MouseUpEventHandler += eHandler;
+                    btnRight.MouseUpEventHandler += eHandler;
+                }
+                else if (i == 2)
+                {
+                    btnRightFrameLayout.MouseUpEventHandler += eHandler;
+                    btnRight.MouseUpEventHandler += eHandler;
+                }
             }
         }
 
@@ -222,16 +262,18 @@
                      {
                          int successConunt = 0;
                          int operateConunt = -1;
-                         Application.RunOnMainThread(() => { CommonPage.Loading.Start("Loading..."); });
+                         Application.RunOnMainThread(() => { CommonPage.Loading.Start(""); });
                          try
                          {
                              var doorLockId = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint;
                              var curAccountDoorLockUserList = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetAccountDoorLockUserList(doorLock, curAccountObj.SubAccountDistributedMark);
-
                              if (curAccountDoorLockUserList.Count != 0)
                              {
                                  //淇敼浜戠瀛樺偍淇℃伅
                                  operateConunt = curAccountDoorLockUserList.Count;
+                                 var tempGroupId = new List<List<int>>();
+                                 var tempUserIdList = new List<int> { };
+                                 var tempUserObjList = new List<ZigBee.Device.DoorLock.CloudDoorLockObj> { };
                                  foreach (var curDoorLockUser in curAccountDoorLockUserList)
                                  {
                                      // 璐︽埛涓病鏈夐棬閿佺敤鎴�
@@ -326,136 +368,175 @@
                                      }
                                      else
                                      {
-                                         ZigBee.Device.DoorLock.AccessType accessType;
-                                         if (isFreeze)
+                                         if (tempUserIdList.Count == 9)
+                                         {
+                                             tempGroupId.Add(tempUserIdList);
+                                             tempUserIdList = new List<int>();
+                                         }
+                                         tempUserIdList.Add(int.Parse(curDoorLockUser.DoorLockLocalUserId));
+                                         tempUserObjList.Add(curDoorLockUser);
+                                     }
+                                 }
+                                 tempGroupId.Add(tempUserIdList);
+                                 //鎵归噺鍐荤粨闂ㄩ攣涓殑璐︽埛
+                                 ZigBee.Device.DoorLock.AccessType accessType;
+                                 if (isFreeze)
+                                 {
+                                     accessType = ZigBee.Device.DoorLock.AccessType.DisEnableMoreUsers;
+                                 }
+                                 else
+                                 {
+                                     accessType = ZigBee.Device.DoorLock.AccessType.EnableMoreUsers;
+                                 }
+                                 //鍐荤粨/瑙e喕鐢ㄦ埛
+                                 int count1 = tempGroupId.Count;
+                                 int count2 = 0;
+
+                                 for (int i = 0; i < tempGroupId.Count; i++)
+                                 {
+                                     var tempUserIdList1 = tempGroupId[i];
+                                     if (tempUserIdList1.Count == 0)
+                                     {
+                                         return;
+                                     }
+                                     var passData = doorLock.FreezeAccountData(tempUserIdList1, accessType);
+                                     var resultData = await doorLock.DefaultControlAsync(passData);
+                                     if (resultData != null && resultData.defaultControlResponseData != null)
+                                     {
+                                         if (resultData.defaultControlResponseData.status == 32)
+                                         {
+                                             count2++;
+                                         }
+                                         else if (resultData.defaultControlResponseData.status == 33)
+                                         {
+                                             count2++;
+                                         }
+
+                                         System.Threading.Thread.Sleep(3000);
+                                     }
+                                     else
+                                     {
+                                         Application.RunOnMainThread(() =>
+                                         {
+                                             new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 2 }.Show(Common.CommonPage.Instance);
+                                         });
+                                         return;
+                                     }
+                                 }
+
+                                 // 鎵归噺鍐荤粨闂ㄩ攣涓殑璐︽埛鍚庯紝鍑嗗鍐荤粨浜戠璐︽埛
+                                 if (count2 == count1)
+                                 {
+                                     foreach (var curDoorLockUser in tempUserObjList)
+                                     {
+                                         if (isFreeze)
                                          {
-                                             accessType = ZigBee.Device.DoorLock.AccessType.DisEnable;
-                                         }
-                                         else
-                                         {
-                                             accessType = ZigBee.Device.DoorLock.AccessType.Enable;
-                                         }
-                                         //鍐荤粨/瑙e喕鐢ㄦ埛
-                                         var passData = doorLock.SetUserAccessData(int.Parse(curDoorLockUser.DoorLockLocalUserId), accessType);
-                                         var resultData = await doorLock.DefaultControlAsync(passData);
-                                         if (resultData != null && resultData.defaultControlResponseData != null)
-                                         {
-                                             if (resultData.defaultControlResponseData.status == 32)
+                                             var refreshDoorLockData = new ZigBee.Device.DoorLock.RefreshDoorLockData();
+                                             if (UserCenterResourse.UserInfo.AuthorityNo != 1)
                                              {
-                                                 var refreshDoorLockData = new ZigBee.Device.DoorLock.RefreshDoorLockData();
-                                                 if (UserCenterResourse.UserInfo.AuthorityNo != 1)
-                                                 {
-                                                     refreshDoorLockData.LoginAccessToken = UserCenterLogic.GetConnectMainToken();
-                                                     refreshDoorLockData.IsOtherAccountCtrl = true;
-                                                 }
-                                                 if (doorLock.DeviceAddr != null)
-                                                 {
-                                                     refreshDoorLockData.DoorLockId = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint;
-                                                 }
-
-                                                 refreshDoorLockData.OpenLockMode = curDoorLockUser.OpenLockMode;
-                                                 refreshDoorLockData.DoorLockLocalUserId = curDoorLockUser.DoorLockLocalUserId;
-                                                 refreshDoorLockData.PrimaryId = curDoorLockUser.Id;
-                                                 refreshDoorLockData.IsFreezeUser = true;
-                                                 refreshDoorLockData.IsTempUnlockAuthority = doorLock.HasRemoteUnlockAccess[curAccountObj.SubAccountDistributedMark];
-                                                 //鍐荤粨浜戠
-                                                 var result = await ZigBee.Device.DoorLock.SendDoorLockToServer("DoorLock/UpdateDoorLock", refreshDoorLockData);
-                                                 if (result != null)
-                                                 {
-                                                     if (result.StateCode == "Success")
-                                                     {
-                                                         successConunt++;
-                                                     }
-                                                     else
-                                                     {
-                                                         Application.RunOnMainThread(() =>
-                                                         {
-                                                             if (isFreeze)
-                                                             {
-                                                                 new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.FreezeFailed), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
-                                                             }
-                                                             else
-                                                             {
-                                                                 new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.UnFreezeFailed), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
-                                                             }
-                                                             return;
-                                                         });
-                                                     }
-                                                 }
-                                                 else
-                                                 {
-                                                     Application.RunOnMainThread(() =>
-                                                     {
-                                                         new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CloudServerResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 2 }.Show(Common.CommonPage.Instance);
-                                                     });
-                                                 }
+                                                 refreshDoorLockData.LoginAccessToken = UserCenterLogic.GetConnectMainToken();
+                                                 refreshDoorLockData.IsOtherAccountCtrl = true;
                                              }
-                                             else if (resultData.defaultControlResponseData.status == 33)
+                                             if (doorLock.DeviceAddr != null)
                                              {
-                                                 var refreshDoorLockData = new ZigBee.Device.DoorLock.RefreshDoorLockData();
-                                                 if (UserCenterResourse.UserInfo.AuthorityNo != 1)
-                                                 {
-                                                     refreshDoorLockData.LoginAccessToken = UserCenterLogic.GetConnectMainToken();
-                                                     refreshDoorLockData.IsOtherAccountCtrl = true;
-                                                 }
-                                                 if (doorLock.DeviceAddr != null)
-                                                 {
-                                                     refreshDoorLockData.DoorLockId = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint;
-                                                 }
+                                                 refreshDoorLockData.DoorLockId = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint;
+                                             }
 
-                                                 refreshDoorLockData.OpenLockMode = curDoorLockUser.OpenLockMode;
-                                                 refreshDoorLockData.DoorLockLocalUserId = curDoorLockUser.DoorLockLocalUserId;
-                                                 refreshDoorLockData.PrimaryId = curDoorLockUser.Id;
-                                                 refreshDoorLockData.IsFreezeUser = false;
-                                                 refreshDoorLockData.IsTempUnlockAuthority = doorLock.HasRemoteUnlockAccess[curAccountObj.SubAccountDistributedMark];
-                                                 //瑙e喕浜戠
-                                                 var result = await ZigBee.Device.DoorLock.SendDoorLockToServer("DoorLock/UpdateDoorLock", refreshDoorLockData);
-                                                 if (result != null)
+                                             refreshDoorLockData.OpenLockMode = curDoorLockUser.OpenLockMode;
+                                             refreshDoorLockData.DoorLockLocalUserId = curDoorLockUser.DoorLockLocalUserId;
+                                             refreshDoorLockData.PrimaryId = curDoorLockUser.Id;
+                                             refreshDoorLockData.IsFreezeUser = true;
+                                             refreshDoorLockData.IsTempUnlockAuthority = doorLock.HasRemoteUnlockAccess[curAccountObj.SubAccountDistributedMark];
+                                             //鍐荤粨浜戠
+                                             var result = await ZigBee.Device.DoorLock.SendDoorLockToServer("DoorLock/UpdateDoorLock", refreshDoorLockData);
+                                             if (result != null)
+                                             {
+                                                 if (result.StateCode == "Success")
                                                  {
-                                                     if (result.StateCode == "Success")
+                                                     successConunt++;
+                                                 }
+                                                 else
+                                                 {
+                                                     Application.RunOnMainThread(() =>
                                                      {
-                                                         successConunt++;
-                                                     }
-                                                     else
-                                                     {
-                                                         Application.RunOnMainThread(() =>
+                                                         if (isFreeze)
                                                          {
                                                              new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.FreezeFailed), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
-                                                         });
-                                                     }
-                                                 }
-                                                 else
-                                                 {
-                                                     Application.RunOnMainThread(() =>
-                                                     {
-                                                         new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CloudServerResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 2 }.Show(Common.CommonPage.Instance);
-                                                     });
+                                                         }
+                                                         else
+                                                         {
+                                                             new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.UnFreezeFailed), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
+                                                         }
+                                                         return;
+                                                     });
                                                  }
                                              }
-                                             else
-                                             {
-                                                 Application.RunOnMainThread(() =>
-                                                 {
-                                                     if (isFreeze)
-                                                     {
-                                                         new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.FreezeFailed) + ".", Direction = AMPopTipDirection.None, CloseTime = 2 }.Show(Common.CommonPage.Instance);
-                                                     }
-                                                     else
-                                                     {
-                                                         new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.UnFreezeFailed) + ".", Direction = AMPopTipDirection.None, CloseTime = 2 }.Show(Common.CommonPage.Instance);
-                                                     }
-                                                     return;
-                                                 });
-                                             }
+                                             else
+                                             {
+                                                 Application.RunOnMainThread(() =>
+                                                 {
+                                                     new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CloudServerResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 2 }.Show(Common.CommonPage.Instance);
+                                                 });
+                                             }
                                          }
                                          else
                                          {
-                                             Application.RunOnMainThread(() =>
+                                             var refreshDoorLockData = new ZigBee.Device.DoorLock.RefreshDoorLockData();
+                                             if (UserCenterResourse.UserInfo.AuthorityNo != 1)
                                              {
-                                                 new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 2 }.Show(Common.CommonPage.Instance);
-                                             });
+                                                 refreshDoorLockData.LoginAccessToken = UserCenterLogic.GetConnectMainToken();
+                                                 refreshDoorLockData.IsOtherAccountCtrl = true;
+                                             }
+                                             if (doorLock.DeviceAddr != null)
+                                             {
+                                                 refreshDoorLockData.DoorLockId = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint;
+                                             }
+
+                                             refreshDoorLockData.OpenLockMode = curDoorLockUser.OpenLockMode;
+                                             refreshDoorLockData.DoorLockLocalUserId = curDoorLockUser.DoorLockLocalUserId;
+                                             refreshDoorLockData.PrimaryId = curDoorLockUser.Id;
+                                             refreshDoorLockData.IsFreezeUser = false;
+                                             refreshDoorLockData.IsTempUnlockAuthority = doorLock.HasRemoteUnlockAccess[curAccountObj.SubAccountDistributedMark];
+                                             //瑙e喕浜戠
+                                             var result = await ZigBee.Device.DoorLock.SendDoorLockToServer("DoorLock/UpdateDoorLock", refreshDoorLockData);
+                                             if (result != null)
+                                             {
+                                                 if (result.StateCode == "Success")
+                                                 {
+                                                     successConunt++;
+                                                 }
+                                                 else
+                                                 {
+                                                     Application.RunOnMainThread(() =>
+                                                     {
+                                                         new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.FreezeFailed), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
+                                                     });
+                                                 }
+                                             }
+                                             else
+                                             {
+                                                 Application.RunOnMainThread(() =>
+                                                 {
+                                                     new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CloudServerResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 2 }.Show(Common.CommonPage.Instance);
+                                                 });
+                                             }
                                          }
-                                     }
+                                     }
+                                 }
+                                 else
+                                 {
+                                     Application.RunOnMainThread(() =>
+                                     {
+                                         if (isFreeze)
+                                         {
+                                             new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.FreezeFailed) + ".", Direction = AMPopTipDirection.None, CloseTime = 2 }.Show(Common.CommonPage.Instance);
+                                         }
+                                         else
+                                         {
+                                             new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.UnFreezeFailed) + ".", Direction = AMPopTipDirection.None, CloseTime = 2 }.Show(Common.CommonPage.Instance);
+                                         }
+                                         return;
+                                     });
                                  }
                              }
                              else
@@ -746,27 +827,6 @@
                     MidRefresh();
                 }
             };
-        }
-
-        void ReadDoorLockUserInfo()
-        {
-            System.Threading.Tasks.Task.Run(async () =>
-            {
-                Application.RunOnMainThread(() => { CommonPage.Loading.Start("Loading..."); });
-                try
-                {
-                    //await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetLocaDoorLocklist(doorLock, curAccountObj);
-                }
-                catch { }
-                finally
-                {
-                    Application.RunOnMainThread(() =>
-                    {
-                        MidRefresh();
-                        CommonPage.Loading.Hide();
-                    });
-                }
-            });
         }
 
         #region 鈼� 鎺ュ彛瀹炵幇__________________________

--
Gitblit v1.8.0