From 9f326f4000847e6167d8166fa2f6a66f53cb3734 Mon Sep 17 00:00:00 2001
From: 黄学彪 <hxb@hdlchina.com.cn>
Date: 星期四, 17 十二月 2020 09:07:13 +0800
Subject: [PATCH] 新云端Ver1.3

---
 ZigbeeApp/Shared/Phone/UserCenter/DoorLock/MemberFrozenPage.cs | 1284 ++++++++++++++++++++++++++++-----------------------------
 1 files changed, 635 insertions(+), 649 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/MemberFrozenPage.cs b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/MemberFrozenPage.cs
index 29ec891..b0cec52 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/MemberFrozenPage.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/MemberFrozenPage.cs
@@ -5,39 +5,84 @@
 using ZigBee.Device;
 namespace Shared.Phone.UserCenter.DoorLock
 {
-    public class MemberFrozenPage : DoorLockCommonLayout, ZigBee.Common.IStatus
+    public class MemberFrozenPage : DoorLockCommonLayout
     {
         /// <summary>
         /// 鏋勯�犲嚱鏁�
         /// </summary>
         /// <param name="doorLock"></param>
-        public MemberFrozenPage(ZigBee.Device.DoorLock doorLock, Shared.Phone.UserCenter.MemberInfoRes accountObj)
+        public MemberFrozenPage(ZigBee.Device.DoorLock doorLock, MemberInfoRes accountObj)
         {
             this.doorLock = doorLock;
             this.curAccountObj = accountObj;
             BackgroundColor = Shared.Common.ZigbeeColor.Current.GXCTopViewBackgroundColor;
         }
 
-        #region 鈼� 鍙橀噺鐢虫槑__________________________
+        #region  鍙橀噺鐢虫槑 
+        /// <summary>
+        /// 褰撳墠闂ㄩ攣
+        /// </summary>
         ZigBee.Device.DoorLock doorLock;
-        Shared.Phone.UserCenter.MemberInfoRes curAccountObj;
-        VerticalScrolViewLayout bodyView;
+        /// <summary>
+        /// 褰撳墠鎴愬憳瀵硅薄v
+        /// </summary>
+        MemberInfoRes curAccountObj;
+        /// <summary>
+        /// 鍒锋柊View
+        /// </summary>
+        VerticalRefreshLayout bodyView;
         #endregion
 
-        /// <summary>
-        /// UI鏄剧ず 
+        /// <summary>
+        /// 鍒濆鍖栨暟鎹俊鎭�
+        /// </summary>
+        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);
+                    //var result2 = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetDoorLockOperateAccess(doorLock, curAccountObj?.SubAccountDistributedMark);
+                    //if (result2 == true)
+                    //{
+                    //    doorLock.IsFreezeAccount[curAccountObj.SubAccountDistributedMark] = true;
+                    //}
+                    //else
+                    //{
+                    //    doorLock.IsFreezeAccount[curAccountObj.SubAccountDistributedMark] = false;
+                    //}
+                    //var result3 = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetDoorLockUnlockAccess(doorLock, curAccountObj.SubAccountDistributedMark);
+                    //if (result3 == true)
+                    //{
+                    //    doorLock.HasRemoteUnlockAccess[curAccountObj.SubAccountDistributedMark] = true;
+                    //}
+                    //else
+                    //{
+                    //    doorLock.HasRemoteUnlockAccess[curAccountObj.SubAccountDistributedMark] = false;
+                    //}
+                }
+                catch { }
+                finally
+                {
+                    Application.RunOnMainThread(() =>
+                    {
+                        MidRefresh();
+                        bodyView.EndHeaderRefreshing();
+                    });
+                }
+            });
+        }
+
+        /// <summary>
+        /// UI鏄剧ず 
         /// </summary>
         public void Show()
         {
-            string accountTitle = "";
-            if (curAccountObj.UserName != null)
-            {
-                accountTitle = curAccountObj.UserName;
-            }
-            else
-            {
-                accountTitle = curAccountObj.Account;
-            }
+            string accountTitle = curAccountObj.ShowName;
             this.TopFrameLayout(this, accountTitle);
 
             EventHandler<MouseEventArgs> eHandlerBack = (sender, e) =>
@@ -47,22 +92,23 @@
             this.btnBack.MouseUpEventHandler += eHandlerBack;
             this.btnBackFrameLayout.MouseUpEventHandler += eHandlerBack;
             this.MidFrameLayout(this);
-            this.titleFrameLayout.MouseUpEventHandler += (sender, e) =>
-            {
-                var userDoorLockPage = new UserDoorLockPage(doorLock, curAccountObj);
-                Shared.Phone.UserView.HomePage.Instance.AddChidren(userDoorLockPage);
-                Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
-                userDoorLockPage.Show();
-            };
-            bodyView = new VerticalScrolViewLayout()
+
+            bodyView = new VerticalRefreshLayout()
             {
             };
             this.midFrameLayout.AddChidren(bodyView);
+            MidRefresh();
 
-            ReadDoorLockUserInfo();
+            bodyView.BeginHeaderRefreshingAction += () =>
+            {
+                bodyView.BeginHeaderRefreshing();
+                ReadDoorLockUserInfo();
+            };
         }
-
-        public void MidRefresh()
+        /// <summary>
+        /// 涓儴甯冨眬
+        /// </summary>
+        public async void MidRefresh()
         {
             bodyView.RemoveAll();
 
@@ -70,8 +116,8 @@
             {
                 var RowView = new FrameLayout()
                 {
-                    Height = Application.GetRealHeight(127 + 20),
-                    BackgroundColor = Shared.Common.ZigbeeColor.Current.XMTopFrameLayout,
+                    Height = Application.GetRealHeight(127 + 23),
+                    BackgroundColor = Shared.Common.ZigbeeColor.Current.XMWhite,
                 };
                 bodyView.AddChidren(RowView);
 
@@ -127,45 +173,48 @@
                     btnRight.Width = Application.GetRealWidth(104);
                     btnRight.UnSelectedImagePath = "DoorLock/Switch.png";
                     btnRight.SelectedImagePath = "DoorLock/SwitchOn.png";
-
-                    if (doorLock.IsFreezeAccount[curAccountObj.SubAccountDistributedMark] == true)
-                    {
-                        btnRight.IsSelected = true;
-                    }
-                    else
-                    {
-                        btnRight.IsSelected = false;
-                    }
+                    //鈽嗐優銉笺偗鈽�
+                    //var result = doorLock.IsFreezeAccount[curAccountObj.SubAccountDistributedMark];
+                    //if (result == true)
+                    //{
+                    //    btnRight.IsSelected = true;
+                    //}
+                    //else
+                    //{
+                    //    btnRight.IsSelected = false;
+                    //}
                 }
                 else if (i == 2)
                 {
-                    if (doorLock.IsFreezeAccount[curAccountObj.SubAccountDistributedMark] == false)
-                    {
-                        btnText.Text = Language.StringByID(R.MyInternationalizationString.TempUnlockPermission);
-                        btnRight.X = Application.GetRealWidth(50);
-                        btnRight.Y = Application.GetRealHeight(32);
-                        btnRight.Height = Application.GetRealHeight(63);
-                        btnRight.Width = Application.GetRealWidth(104);
-                        btnRight.UnSelectedImagePath = "DoorLock/Switch.png";
-                        btnRight.SelectedImagePath = "DoorLock/SwitchOn.png";
-                        line2.Visible = false;
+                    //鈽嗐優銉笺偗鈽�
+                    //if (doorLock.IsFreezeAccount[curAccountObj.SubAccountDistributedMark] == false)
+                    //{
+                    //    btnText.Text = Language.StringByID(R.MyInternationalizationString.TempUnlockPermission);
+                    //    btnRight.X = Application.GetRealWidth(50);
+                    //    btnRight.Y = Application.GetRealHeight(32);
+                    //    btnRight.Height = Application.GetRealHeight(63);
+                    //    btnRight.Width = Application.GetRealWidth(104);
+                    //    btnRight.UnSelectedImagePath = "DoorLock/Switch.png";
+                    //    btnRight.SelectedImagePath = "DoorLock/SwitchOn.png";
+                    //    line2.Visible = false;
 
-                        if (doorLock.HasRemoteUnlockAccess[curAccountObj.SubAccountDistributedMark] == true)
-                        {
-                            btnRight.IsSelected = true;
-                        }
-                        else
-                        {
-                            btnRight.IsSelected = false;
-                        }
-                    }
-                    else
-                    {
-                        btnText.Width = 0;
-                        btnRight.Width = 0;
-                        line2.Width = 0;
-                        RowView.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMMidFrameLayout;
-                    }
+                    //    var result1 = doorLock.HasRemoteUnlockAccess[curAccountObj.SubAccountDistributedMark];
+                    //    if (result1 == true)
+                    //    {
+                    //        btnRight.IsSelected = true;
+                    //    }
+                    //    else
+                    //    {
+                    //        btnRight.IsSelected = false;
+                    //    }
+                    //}
+                    //else
+                    //{
+                    //    btnText.Width = 0;
+                    //    btnRight.Width = 0;
+                    //    line2.Width = 0;
+                    //    RowView.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMMidFrameLayout;
+                    //}
                 }
 
                 int currentIndex = i;
@@ -180,9 +229,7 @@
                     }
                     else if (currentIndex == 1)
                     {
-                        btnRight.IsSelected = !btnRight.IsSelected;
-
-                        if (btnRight.IsSelected)
+                        if (!btnRight.IsSelected)
                         {
                             FreezeUser(true);
                         }
@@ -193,8 +240,7 @@
                     }
                     else if (currentIndex == 2)
                     {
-                        btnRight.IsSelected = !btnRight.IsSelected;
-                        if (btnRight.IsSelected)
+                        if (!btnRight.IsSelected)
                         {
                             HasRemoteUnlockAccessMethod(true);
                         }
@@ -204,607 +250,547 @@
                         }
                     }
                 };
-                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;
+                }
             }
         }
 
-
-        //鍐荤粨璐︽埛
+        /// <summary>
+        /// 鍐荤粨璐︽埛
+        /// </summary>
+        /// <param name="isFreeze"></param>
         void FreezeUser(bool isFreeze)
         {
-            var alert = new Alert(Language.StringByID(R.MyInternationalizationString.Tip), Language.StringByID(R.MyInternationalizationString.SureToFreezeAccount),
-                                                 Language.StringByID(R.MyInternationalizationString.Cancel), Language.StringByID(R.MyInternationalizationString.Confrim));
-            alert.Show();
-            alert.ResultEventHandler += (sender1, e1) =>
-             {
-                 if (e1)
-                 {
-                     System.Threading.Tasks.Task.Run(async () =>
-                     {
-                         int successConunt = 0;
-                         int operateConunt = -1;
-                         Application.RunOnMainThread(() => { CommonPage.Loading.Start("Loading..."); });
-                         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;
-                                 foreach (var curDoorLockUser in curAccountDoorLockUserList)
-                                 {
-                                     // 璐︽埛涓病鏈夐棬閿佺敤鎴�
-                                     if (curDoorLockUser.DoorLockLocalUserId == null || curDoorLockUser.DoorLockLocalUserId == "")
-                                     {
-                                         if (isFreeze)
-                                         {
-                                             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.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.Up, CloseTime = 1 }.Show(this.btnTip);
-                                                         }
-                                                         else
-                                                         {
-                                                             new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.UnFreezeFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(this.btnTip);
-                                                         }
-                                                         return;
-                                                     });
-                                                 }
-                                             }
-                                             else
-                                             {
-                                                 Application.RunOnMainThread(() =>
-                                                 {
-                                                     new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CloudServerResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(this.btnTip);
-                                                 });
-                                             }
-                                         }
-                                         else
-                                         {
-                                             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.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.Up, CloseTime = 1 }.Show(this.btnTip);
-                                                     });
-                                                 }
-                                             }
-                                             else
-                                             {
-                                                 Application.RunOnMainThread(() =>
-                                                 {
-                                                     new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CloudServerResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(this.btnTip);
-                                                 });
-                                             }
-                                         }
-                                     }
-                                     else
-                                     {
-                                         ZigBee.Device.DoorLock.AccessType accessType;
-                                         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)
-                                                 {
-                                                     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.Up, CloseTime = 1 }.Show(this.btnTip);
-                                                             }
-                                                             else
-                                                             {
-                                                                 new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.UnFreezeFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(this.btnTip);
-                                                             }
-                                                             return;
-                                                         });
-                                                     }
-                                                 }
-                                                 else
-                                                 {
-                                                     Application.RunOnMainThread(() =>
-                                                     {
-                                                         new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CloudServerResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show(this.btnTip);
-                                                     });
-                                                 }
-                                             }
-                                             else if (resultData.defaultControlResponseData.status == 33)
-                                             {
-                                                 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 = 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.Up, CloseTime = 1 }.Show(this.btnTip);
-                                                         });
-                                                     }
-                                                 }
-                                                 else
-                                                 {
-                                                     Application.RunOnMainThread(() =>
-                                                     {
-                                                         new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CloudServerResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show(this.btnTip);
-                                                     });
-                                                 }
-                                             }
-                                             else
-                                             {
-                                                 Application.RunOnMainThread(() =>
-                                                 {
-                                                     if (isFreeze)
-                                                     {
-                                                         new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.FreezeFailed) + ".", Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show(this.btnTip);
-                                                     }
-                                                     else
-                                                     {
-                                                         new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.UnFreezeFailed) + ".", Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show(this.btnTip);
-                                                     }
-                                                     return;
-                                                 });
-                                             }
-                                         }
-                                         else
-                                         {
-                                             Application.RunOnMainThread(() =>
-                                             {
-                                                 new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show(this.btnTip);
-                                             });
-                                         }
-                                     }
-                                 }
-                             }
-                             else
-                             {
-                                 //娣诲姞浜戠瀛樺偍淇℃伅
-                                 //鍐荤粨/瑙e喕浜戠
-                                 var addLockInfo = new ZigBee.Device.DoorLock.AddDoorLockData();
-                                 if (UserCenterResourse.UserInfo.AuthorityNo != 1)
-                                 {
-                                     addLockInfo.LoginAccessToken = UserCenterLogic.GetConnectMainToken();
-                                     addLockInfo.IsOtherAccountCtrl = true;
-                                 }
-                                 addLockInfo.CloudAccountId = curAccountObj.SubAccountDistributedMark;
-                                 if (doorLock.DeviceAddr != null)
-                                 {
-                                     addLockInfo.DoorLockId = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint;
-                                 }
-                                 addLockInfo.EntryTime = System.DateTime.Now;
-                                 if (isFreeze)
-                                 {
-                                     addLockInfo.IsFreezeUser = true;
-                                 }
-                                 else
-                                 {
-                                     addLockInfo.IsFreezeUser = false;
-                                 }
-                                 addLockInfo.IsTempUnlockAuthority = doorLock.HasRemoteUnlockAccess[curAccountObj.SubAccountDistributedMark];
-                                 var result = await ZigBee.Device.DoorLock.SendDoorLockToServer("DoorLock/AddDoorLock", addLockInfo);
-                                 if (result != null)
-                                 {
-                                     if (result.StateCode == "Success")
-                                     {
-                                         operateConunt = 0;
-                                     }
-                                     else
-                                     {
-                                         Application.RunOnMainThread(() =>
-                                         {
-                                             if (isFreeze)
-                                             {
-                                                 new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.FreezeFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(this.btnTip);
-                                             }
-                                             else
-                                             {
-                                                 new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.UnFreezeFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(this.btnTip);
-                                             }
-                                             return;
-                                         });
-                                     }
-                                 }
-                                 else
-                                 {
-                                     Application.RunOnMainThread(() =>
-                                     {
-                                         new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CloudServerResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(this.btnTip);
-
-                                     });
-                                 }
-                             }
-                         }
-                         catch { }
-                         finally
-                         {
-                             if (operateConunt == successConunt)
-                             {
-                                 if (isFreeze)
-                                 {
-                                     doorLock.IsFreezeAccount[curAccountObj.SubAccountDistributedMark] = true;
-                                 }
-                                 else
-                                 {
-                                     doorLock.IsFreezeAccount[curAccountObj.SubAccountDistributedMark] = false;
-                                 }
-                                 doorLock.ReSave();
-                             }
-                             Application.RunOnMainThread(() =>
-                             {
-                                 MidRefresh();
-                                 CommonPage.Loading.Hide();
-                             });
-                         }
-                     });
-                 }
-                 else
-                 {
-                     MidRefresh();
-                 }
-             };
-        }
-
-        //鏄惁缁欏瓙璐︽埛鎷ユ湁杩滅▼寮�閿佺殑鏉′欢
-        void HasRemoteUnlockAccessMethod(bool hasAccess)
-        {
-            var alert = new Alert(Language.StringByID(R.MyInternationalizationString.Tip), Language.StringByID(R.MyInternationalizationString.SureGiveAccessToSubaccount),
-                                                 Language.StringByID(R.MyInternationalizationString.Cancel), Language.StringByID(R.MyInternationalizationString.Confrim));
-            alert.Show();
-            alert.ResultEventHandler += (sender1, e1) =>
+            var dialog = new Dialog { };
+            string textFreeze = "";
+            if (isFreeze)
             {
-                if (e1)
+                textFreeze = Language.StringByID(R.MyInternationalizationString.SureToFreezeAccount);
+            }
+            else
+            {
+                textFreeze = Language.StringByID(R.MyInternationalizationString.SureToUnFreeze);
+            }
+
+            string msg = Language.StringByID(R.MyInternationalizationString.GoPersonalCenter);
+            var alert = new ShowMsgControl(ShowMsgType.Confirm, textFreeze, Language.StringByID(R.MyInternationalizationString.DoorlockConfirm));
+            alert.Show();
+            //浣跨敤纭鍨嬪脊妗嗘椂,鐨勫洖璋冨嚱鏁�
+            alert.ConfirmClickEvent += () =>
+            {
+                System.Threading.Tasks.Task.Run(async () =>
                 {
-                    System.Threading.Tasks.Task.Run(async () =>
+                    int successConunt = 0;
+                    int operateConunt = -1;
+                    Application.RunOnMainThread(() => { CommonPage.Loading.Start(""); });
+                    try
                     {
-                        int successConunt = 0;
-                        int operateConunt = -1;
-                        Application.RunOnMainThread(() => { CommonPage.Loading.Start("Loading..."); });
-                        try
-                        {
-                            var resultList = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetAccountDoorLockUserList(doorLock, curAccountObj.SubAccountDistributedMark);
-                            var uList = new List<string> { };
-                            if (resultList != null)
-                            {
-                                foreach (var a in resultList)
-                                {
-                                    uList.Add(a.CloudAccountId);
-                                }
-                            }
-                            var d = uList.Find((value) => { return value == curAccountObj.SubAccountDistributedMark; });
-                            if (d != null)
-                            {
-                                //淇敼浜戠瀛樺偍淇℃伅
-                                var curAccountDoorLockUserList = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetAccountDoorLockUserList(doorLock, curAccountObj.SubAccountDistributedMark);
+                        //鈽嗐優銉笺偗鈽�
+                        //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> { };
+                        //    foreach (var curDoorLockUser in curAccountDoorLockUserList)
+                        //    {
+                        //        // 璐︽埛涓病鏈夐棬閿佺敤鎴�
+                        //        if (string.IsNullOrEmpty(curDoorLockUser.DoorLockLocalUserId))
+                        //        {
+                        //        }
+                        //        else
+                        //        {
+                        //            if (tempUserIdList.Count == 9)
+                        //            {
+                        //                tempGroupId.Add(tempUserIdList);
+                        //                tempUserIdList = new List<int>();
+                        //            }
+                        //            tempUserIdList.Add(int.Parse(curDoorLockUser.DoorLockLocalUserId));
+                        //        }
+                        //    }
+                        //    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;
+                        //    if (tempGroupId.Count == 1)
+                        //    {
+                        //        foreach (var a in tempGroupId)
+                        //        {
+                        //            if (a.Count == 0)
+                        //            {
+                        //                count1 = 0;
+                        //                break;
+                        //            }
+                        //        }
+                        //    }
+                        //    int count2 = 0;
 
-                                foreach (var curDoorLockUser in curAccountDoorLockUserList)
-                                {
-                                    operateConunt = curAccountDoorLockUserList.Count;
-                                    if (hasAccess)
-                                    {
-                                        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.PrimaryId = curDoorLockUser.Id;
-                                        refreshDoorLockData.IsFreezeUser = false;
-                                        refreshDoorLockData.IsTempUnlockAuthority = true;
-                                        // 鎺堟潈
-                                        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.GiveAccessToSubaccountFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(this.btnTip);
-                                                });
-                                            }
-                                        }
-                                        else
-                                        {
-                                            Application.RunOnMainThread(() =>
-                                            {
-                                                new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CloudServerResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(this.btnTip);
-                                            });
-                                        }
-                                    }
-                                    else
-                                    {
-                                        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.PrimaryId = curDoorLockUser.Id;
-                                        refreshDoorLockData.IsFreezeUser = false;
-                                        refreshDoorLockData.IsTempUnlockAuthority = false;
-                                        //鍙栨秷鏉冮檺
-                                        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.CancelAccessToSubaccountFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(this.btnTip);
-                                                });
-                                            }
-                                        }
-                                        else
-                                        {
-                                            Application.RunOnMainThread(() =>
-                                            {
-                                                new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CloudServerResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(this.btnTip);
-                                            });
-                                        }
-                                    }
-                                }
-                            }
-                            else
-                            {
-                                //鏂板锛屼笖涓嶅喕缁� 
-                                var addLockInfo = new ZigBee.Device.DoorLock.AddDoorLockData();
-                                if (UserCenterResourse.UserInfo.AuthorityNo != 1)
-                                {
-                                    addLockInfo.LoginAccessToken = UserCenterLogic.GetConnectMainToken();
-                                    addLockInfo.IsOtherAccountCtrl = true;
-                                }
-                                addLockInfo.CloudAccountId = curAccountObj.SubAccountDistributedMark;
-                                if (doorLock.DeviceAddr != null)
-                                {
-                                    addLockInfo.DoorLockId = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint;
-                                }
-                                addLockInfo.EntryTime = System.DateTime.Now;
-                                addLockInfo.IsFreezeUser = false;
-                                if (hasAccess)
-                                {
-                                    addLockInfo.IsTempUnlockAuthority = true;
-                                }
-                                else
-                                {
-                                    addLockInfo.IsTempUnlockAuthority = false;
-                                }
-                                var result = await ZigBee.Device.DoorLock.SendDoorLockToServer("DoorLock/AddDoorLock", addLockInfo);
-                                if (result != null)
-                                {
-                                    if (result.StateCode == "Success")
-                                    {
-                                        operateConunt = 0;
-                                    }
-                                    else
-                                    {
-                                        Application.RunOnMainThread(() =>
-                                        {
-                                            if (hasAccess)
-                                            {
-                                                new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GiveAccessToSubaccountFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(this.btnTip);
-                                            }
-                                            else
-                                            {
-                                                new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CancelAccessToSubaccountFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(this.btnTip);
-                                            }
-                                            return;
-                                        });
-                                    }
-                                }
-                                else
-                                {
-                                    Application.RunOnMainThread(() =>
-                                    {
-                                        new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CloudServerResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(this.btnTip);
-                                    });
-                                }
-                            }
+                        //    int tempCount = 0;
+                        //    for (int i = 0; i < tempGroupId.Count; i++)
+                        //    {
+                        //        var tempUserIdList1 = tempGroupId[i];
+                        //        if (tempUserIdList1.Count == 0)
+                        //        {
+                        //            break;
+                        //        }
+                        //        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(1000);
+                        //        }
+                        //        else
+                        //        {
+                        //            Application.RunOnMainThread(() =>
+                        //            {
+                        //                new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 2 }.Show(Common.CommonPage.Instance);
+                        //            });
+                        //            return;
+                        //        }
+                        //        tempCount++;
+                        //    }
 
-                        }
-                        catch { }
-                        finally
+                        //    // 鎵归噺鍐荤粨闂ㄩ攣涓殑璐︽埛鍚庯紝鍑嗗鍐荤粨浜戠璐︽埛
+                        //    if (count2 == count1)
+                        //    {
+                        //        foreach (var curDoorLockUser in curAccountDoorLockUserList)
+                        //        {
+                        //            if (isFreeze)
+                        //            {
+                        //                var refreshDoorLockData = new ZigBee.Device.DoorLock.RefreshDoorLockData();
+                        //                if (UserCenterResourse.ResidenceOption.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.Code == HttpMessageEnum.A姝e父)
+                        //                    {
+                        //                        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);
+                        //                    });
+                        //                }
+                        //            }
+                        //            else
+                        //            {
+                        //                var refreshDoorLockData = new ZigBee.Device.DoorLock.RefreshDoorLockData();
+                        //                if (UserCenterResourse.ResidenceOption.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 = false;
+                        //                refreshDoorLockData.IsTempUnlockAuthority = doorLock.HasRemoteUnlockAccess[curAccountObj.SubAccountDistributedMark];
+                        //                //瑙e喕浜戠
+                        //                var result = await ZigBee.Device.DoorLock.SendDoorLockToServer("DoorLock/UpdateDoorLock", refreshDoorLockData);
+                        //                if (result != null)
+                        //                {
+                        //                    if (result.Code == HttpMessageEnum.A姝e父)
+                        //                    {
+                        //                        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);
+                        //            }
+                        //        });
+                        //    }
+                        //}
+                        //else
+                        //{
+                        //    //娣诲姞浜戠瀛樺偍淇℃伅
+                        //    //鍐荤粨/瑙e喕浜戠
+                        //    var addLockInfo = new ZigBee.Device.DoorLock.AddDoorLockData();
+                        //    if (UserCenterResourse.ResidenceOption.AuthorityNo != 1)
+                        //    {
+                        //        //鈽嗐優銉笺偗鈽�
+                        //        //addLockInfo.LoginAccessToken = UserCenterLogic.GetConnectMainToken();
+                        //        addLockInfo.IsOtherAccountCtrl = true;
+                        //    }
+                        //    addLockInfo.CloudAccountId = curAccountObj.SubAccountDistributedMark;
+                        //    if (doorLock.DeviceAddr != null)
+                        //    {
+                        //        addLockInfo.DoorLockId = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint;
+                        //    }
+                        //    addLockInfo.EntryTime = System.DateTime.Now;
+                        //    if (isFreeze)
+                        //    {
+                        //        addLockInfo.IsFreezeUser = true;
+                        //    }
+                        //    else
+                        //    {
+                        //        addLockInfo.IsFreezeUser = false;
+                        //    }
+                        //    addLockInfo.IsTempUnlockAuthority = doorLock.HasRemoteUnlockAccess[curAccountObj.SubAccountDistributedMark];
+                        //    var result = await ZigBee.Device.DoorLock.SendDoorLockToServer("DoorLock/AddDoorLock", addLockInfo);
+                        //    if (result != null)
+                        //    {
+                        //        if (result.Code == HttpMessageEnum.A姝e父)
+                        //        {
+                        //            operateConunt = 0;
+                        //        }
+                        //        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 = 1 }.Show(Common.CommonPage.Instance);
+
+                        //        });
+                        //    }
+                        //}
+                    }
+                    catch { }
+                    finally
+                    {
+                        if (operateConunt == successConunt)
                         {
-                            if (operateConunt == successConunt)
-                            {
-                                if (hasAccess)
-                                {
-                                    doorLock.HasRemoteUnlockAccess[curAccountObj.SubAccountDistributedMark] = true;
-                                }
-                                else
-                                {
-                                    doorLock.HasRemoteUnlockAccess[curAccountObj.SubAccountDistributedMark] = false;
-                                }
-                                doorLock.ReSave();
-                            }
-                            Application.RunOnMainThread(() =>
-                            {
-                                MidRefresh();
-                                CommonPage.Loading.Hide();
-                            });
+                            //鈽嗐優銉笺偗鈽�
+                            //if (isFreeze)
+                            //{
+                            //    doorLock.IsFreezeAccount[curAccountObj.SubAccountDistributedMark] = true;
+                            //}
+                            //else
+                            //{
+                            //    doorLock.IsFreezeAccount[curAccountObj.SubAccountDistributedMark] = false;
+                            //}
+                            //doorLock.ReSave();
                         }
-                    });
-                }
-                else
-                {
-                    MidRefresh();
-                }
+                        Application.RunOnMainThread(() =>
+                        {
+                            MidRefresh();
+                            CommonPage.Loading.Hide();
+                        });
+                    }
+                });
             };
         }
 
-        void ReadDoorLockUserInfo()
+        /// <summary>
+        /// 鏄惁缁欏瓙璐︽埛鎷ユ湁杩滅▼寮�閿佺殑鏉′欢
+        /// </summary>
+        /// <param name="hasAccess"></param>
+        void HasRemoteUnlockAccessMethod(bool hasAccess)
         {
-            System.Threading.Tasks.Task.Run(async () =>
+            string msg = Language.StringByID(R.MyInternationalizationString.SureGiveAccessToSubaccount);
+            if (!hasAccess)
             {
-                Application.RunOnMainThread(() => { CommonPage.Loading.Start("Loading..."); });
-                try
+                msg = Language.StringByID(R.MyInternationalizationString.SureCancelAccessToSubaccount);
+            }
+            var alert = new ShowMsgControl(ShowMsgType.Confirm, msg, Language.StringByID(R.MyInternationalizationString.DoorlockConfirm));
+            alert.Show();
+            //浣跨敤纭鍨嬪脊妗嗘椂,鐨勫洖璋冨嚱鏁�
+            alert.ConfirmClickEvent += () =>
+            {
+                System.Threading.Tasks.Task.Run(async () =>
                 {
-                    await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetLocaDoorLocklist(doorLock, curAccountObj);
-                }
-                catch { }
-                finally
-                {
-                    Application.RunOnMainThread(() =>
+                    int successConunt = 0;
+                    int operateConunt = -1;
+                    Application.RunOnMainThread(() => { CommonPage.Loading.Start("Loading..."); });
+                    try
                     {
-                        MidRefresh();
-                        CommonPage.Loading.Hide();
-                    });
-                }
-            });
-        }
+                        //鈽嗐優銉笺偗鈽�
+                        //var resultList = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetAccountDoorLockUserList(doorLock, curAccountObj.SubAccountDistributedMark);
+                        //var uList = new List<string> { };
+                        //if (resultList != null)
+                        //{
+                        //    foreach (var a in resultList)
+                        //    {
+                        //        uList.Add(a.CloudAccountId);
+                        //    }
+                        //}
 
-        #region 鈼� 鎺ュ彛瀹炵幇__________________________
-        /// <summary>
-        /// 澶勭悊鍙樺寲浜嬩欢 --灏嗗純鐢� 鏀圭敤DeviceInfoChange()
-        /// </summary>
-        /// <returns>The changed.</returns>
-        /// <param name="common">Common.</param>
-        public void Changed(CommonDevice common)
-        {
+                        //var d = uList.Find((value) => { return value == curAccountObj.SubAccountDistributedMark; });
+                        //if (d != null)
+                        //{
+                        //    //淇敼浜戠瀛樺偍淇℃伅
+                        //    var curAccountDoorLockUserList = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetAccountDoorLockUserList(doorLock, curAccountObj.SubAccountDistributedMark);
 
+                        //    foreach (var curDoorLockUser in curAccountDoorLockUserList)
+                        //    {
+                        //        operateConunt = curAccountDoorLockUserList.Count;
+                        //        if (hasAccess)
+                        //        {
+                        //            var refreshDoorLockData = new ZigBee.Device.DoorLock.RefreshDoorLockData();
+                        //            if (UserCenterResourse.ResidenceOption.AuthorityNo != 1)
+                        //            {
+                        //                //鈽嗐優銉笺偗鈽�
+                        //                //refreshDoorLockData.LoginAccessToken = UserCenterLogic.GetConnectMainToken();
+                        //                refreshDoorLockData.IsOtherAccountCtrl = true;
+                        //            }
+                        //            if (doorLock.DeviceAddr != null)
+                        //            {
+                        //                refreshDoorLockData.DoorLockId = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint;
+                        //            }
+                        //            refreshDoorLockData.PrimaryId = curDoorLockUser.Id;
+                        //            refreshDoorLockData.IsFreezeUser = false;
+                        //            refreshDoorLockData.IsTempUnlockAuthority = true;
+                        //            // 鎺堟潈
+                        //            var result = await ZigBee.Device.DoorLock.SendDoorLockToServer("DoorLock/UpdateDoorLock", refreshDoorLockData);
+                        //            if (result != null)
+                        //            {
+                        //                if (result.Code == HttpMessageEnum.A姝e父)
+                        //                {
+                        //                    successConunt++;
+                        //                }
+                        //                else
+                        //                {
+                        //                    Application.RunOnMainThread(() =>
+                        //                    {
+                        //                        new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GiveAccessToSubaccountFailed), 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 = 1 }.Show(Common.CommonPage.Instance);
+                        //                });
+                        //            }
+                        //        }
+                        //        else
+                        //        {
+                        //            var refreshDoorLockData = new ZigBee.Device.DoorLock.RefreshDoorLockData();
+                        //            if (UserCenterResourse.ResidenceOption.AuthorityNo != 1)
+                        //            {
+                        //                //refreshDoorLockData.LoginAccessToken = UserCenterLogic.GetConnectMainToken();
+                        //                refreshDoorLockData.IsOtherAccountCtrl = true;
+                        //            }
+                        //            if (doorLock.DeviceAddr != null)
+                        //            {
+                        //                refreshDoorLockData.DoorLockId = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint;
+                        //            }
+                        //            refreshDoorLockData.PrimaryId = curDoorLockUser.Id;
+                        //            refreshDoorLockData.IsFreezeUser = false;
+                        //            refreshDoorLockData.IsTempUnlockAuthority = false;
+                        //            //鍙栨秷鏉冮檺
+                        //            var result = await ZigBee.Device.DoorLock.SendDoorLockToServer("DoorLock/UpdateDoorLock", refreshDoorLockData);
+                        //            if (result != null)
+                        //            {
+                        //                if (result.Code == HttpMessageEnum.A姝e父)
+                        //                {
+                        //                    successConunt++;
+                        //                }
+                        //                else
+                        //                {
+                        //                    Application.RunOnMainThread(() =>
+                        //                    {
+                        //                        new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CancelAccessToSubaccountFailed), 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 = 1 }.Show(Common.CommonPage.Instance);
+                        //                });
+                        //            }
+                        //        }
+                        //    }
+                        //}
+                        //else
+                        //{
+                        //    //鏂板锛屼笖涓嶅喕缁� 
+                        //    var addLockInfo = new ZigBee.Device.DoorLock.AddDoorLockData();
+                        //    if (UserCenterResourse.ResidenceOption.AuthorityNo != 1)
+                        //    {
+                        //        //鈽嗐優銉笺偗鈽�
+                        //        //addLockInfo.LoginAccessToken = UserCenterLogic.GetConnectMainToken();
+                        //        addLockInfo.IsOtherAccountCtrl = true;
+                        //    }
+                        //    addLockInfo.CloudAccountId = curAccountObj.SubAccountDistributedMark;
+                        //    if (doorLock.DeviceAddr != null)
+                        //    {
+                        //        addLockInfo.DoorLockId = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint;
+                        //    }
+                        //    addLockInfo.EntryTime = System.DateTime.Now;
+                        //    addLockInfo.IsFreezeUser = false;
+                        //    if (hasAccess)
+                        //    {
+                        //        addLockInfo.IsTempUnlockAuthority = true;
+                        //    }
+                        //    else
+                        //    {
+                        //        addLockInfo.IsTempUnlockAuthority = false;
+                        //    }
+                        //    var result = await ZigBee.Device.DoorLock.SendDoorLockToServer("DoorLock/AddDoorLock", addLockInfo);
+                        //    if (result != null)
+                        //    {
+                        //        if (result.Code == HttpMessageEnum.A姝e父)
+                        //        {
+                        //            operateConunt = 0;
+                        //        }
+                        //        else
+                        //        {
+                        //            Application.RunOnMainThread(() =>
+                        //            {
+                        //                if (hasAccess)
+                        //                {
+                        //                    new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GiveAccessToSubaccountFailed), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
+                        //                }
+                        //                else
+                        //                {
+                        //                    new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CancelAccessToSubaccountFailed), 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 = 1 }.Show(Common.CommonPage.Instance);
+                        //        });
+                        //    }
+                        //}
+
+                    }
+                    catch { }
+                    finally
+                    {
+                        if (operateConunt == successConunt)
+                        {
+                            //鈽嗐優銉笺偗鈽�
+                            //if (hasAccess)
+                            //{
+                            //    doorLock.HasRemoteUnlockAccess[curAccountObj.SubAccountDistributedMark] = true;
+                            //}
+                            //else
+                            //{
+                            //    doorLock.HasRemoteUnlockAccess[curAccountObj.SubAccountDistributedMark] = false;
+                            //}
+                            doorLock.ReSave();
+                        }
+                        Application.RunOnMainThread(() =>
+                        {
+                            MidRefresh();
+                            CommonPage.Loading.Hide();
+                        });
+                    }
+                });
+            };
         }
-        /// <summary>
-        /// 澶勭悊鍙樺寲浜嬩欢
-        /// </summary>
-        /// <param name="common"></param>
-        /// <param name="typeTag"></param>
-        public void DeviceInfoChange(CommonDevice common, string typeTag)
-        {
-        }
-        /// <summary>
-        /// Changeds the IL ogic status.
-        /// </summary>
-        /// <param name="logic">Logic.</param>
-        public void ChangedILogicStatus(ZigBee.Device.Logic logic)
-        {
-        }
-        /// <summary>
-        /// Changeds the IS cene status.
-        /// </summary>
-        /// <param name="scene">Scene.</param>
-        public void ChangedISceneStatus(Scene scene)
-        {
-        }
-        #endregion
     }
 }

--
Gitblit v1.8.0