From 82a773d1783549caca563831aac8affc059deedf Mon Sep 17 00:00:00 2001
From: 黄学彪 <hxb@hdlchina.com.cn>
Date: 星期四, 07 十一月 2019 10:56:13 +0800
Subject: [PATCH] 合并了全部的代码,IOS 图片需要从新引入工程

---
 ZigbeeApp/Shared/Phone/UserCenter/DoorLock/MemberFrozenPage.cs |  626 ++++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 596 insertions(+), 30 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/MemberFrozenPage.cs b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/MemberFrozenPage.cs
index 6248e90..fb955b1 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/MemberFrozenPage.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/MemberFrozenPage.cs
@@ -14,13 +14,14 @@
         public MemberFrozenPage(ZigBee.Device.DoorLock doorLock, Shared.Phone.UserCenter.MemberInfoRes accountObj)
         {
             this.doorLock = doorLock;
-            this.accountObj = accountObj;
+            this.curAccountObj = accountObj;
             BackgroundColor = Shared.Common.ZigbeeColor.Current.GXCTopViewBackgroundColor;
         }
 
         #region 鈼� 鍙橀噺鐢虫槑__________________________
         ZigBee.Device.DoorLock doorLock;
-        Shared.Phone.UserCenter.MemberInfoRes accountObj;
+        Shared.Phone.UserCenter.MemberInfoRes curAccountObj;
+        VerticalScrolViewLayout bodyView;
         #endregion
 
         /// <summary>
@@ -29,13 +30,13 @@
         public void Show()
         {
             string accountTitle = "";
-            if (accountObj.UserName != null)
+            if (curAccountObj.UserName != null)
             {
-                accountTitle = accountObj.UserName;
+                accountTitle = curAccountObj.UserName;
             }
             else
             {
-                accountTitle = accountObj.Account;
+                accountTitle = curAccountObj.Account;
             }
             this.TopFrameLayout(this, accountTitle);
 
@@ -46,16 +47,24 @@
             this.btnBack.MouseUpEventHandler += eHandlerBack;
             this.btnBackFrameLayout.MouseUpEventHandler += eHandlerBack;
             this.MidFrameLayout(this);
-
-            MidFrameLayoutContent();
-        }
-
-        public void MidFrameLayoutContent()
-        {
-            var bodyView = new VerticalScrolViewLayout()
+            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()
             {
             };
             this.midFrameLayout.AddChidren(bodyView);
+
+            ReadDoorLockUserInfo();
+        }
+
+        public void MidRefresh()
+        {
+            bodyView.RemoveAll();
 
             for (int i = 0; i < 3; i++)
             {
@@ -112,28 +121,51 @@
                 else if (i == 1)
                 {
                     btnText.Text = Language.StringByID(R.MyInternationalizationString.FrozenUser);
-                    btnRight.Height = Application.GetRealHeight(0);
-                    var btnSwitch = new Button()
-                    {
-                        X = Application.GetRealWidth(50),
-                        Y = Application.GetRealHeight(32),
-                        Height = Application.GetRealHeight(60),
-                        Width = Application.GetRealWidth(60),
-                        UnSelectedImagePath = "DoorLock/Switch.png",
-                        SelectedImagePath = "DoorLock/SwitchOn.png",
-                    };
-                    btnRightFrameLayout.AddChidren(btnSwitch);
-                }
-                else if (i == 2)
-                {
-                    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] == 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.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;
+                    }
                 }
 
                 int currentIndex = i;
@@ -141,7 +173,7 @@
                 {
                     if (currentIndex == 0)
                     {
-                        var unLockMethod = new Shared.Phone.UserCenter.DoorLock.UnLockMethod(doorLock, accountObj);
+                        var unLockMethod = new Shared.Phone.UserCenter.DoorLock.UnLockMethod(doorLock, curAccountObj);
                         Shared.Phone.UserView.HomePage.Instance.AddChidren(unLockMethod);
                         Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
                         unLockMethod.Show();
@@ -149,10 +181,26 @@
                     else if (currentIndex == 1)
                     {
                         btnRight.IsSelected = !btnRight.IsSelected;
+
+                        if (btnRight.IsSelected)
+                        {
+                            FreezeUser(true);
+                        }
+                        else
+                        {
+                            FreezeUser(false);
+                        }
                     }
                     else if (currentIndex == 2)
                     {
-
+                        if (btnRight.IsSelected)
+                        {
+                            HasRemoteUnlockAccess(true);
+                        }
+                        else
+                        {
+                            HasRemoteUnlockAccess(false);
+                        }
                     }
                 };
                 btnRightFrameLayout.MouseUpEventHandler += eHandler;
@@ -160,7 +208,525 @@
                 RowView.MouseUpEventHandler += eHandler;
                 btnText.MouseUpEventHandler += eHandler;
             }
+        }
 
+
+        //鍐荤粨璐︽埛
+        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;
+                                             //鍐荤粨浜戠
+                                             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
+                                         {
+                                             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;
+                                             //瑙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
+                                     {
+                                         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;
+                                                 //鍐荤粨浜戠
+                                                 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 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;
+                                                 //瑙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(() =>
+                                                 {
+                                                     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;
+                                 }
+                                 var result = await ZigBee.Device.DoorLock.SendDoorLockToServer("DoorLock/AddDoorLock", addLockInfo);
+                                 if (result != null && result.StateCode == "Success")
+                                 {
+                                     operateConunt = 0;
+                                     // 娣诲姞鍒颁簯绔垚鍔燂紝闇�瑕侀噸鏂拌幏鍙栦繚瀛樺埌鏈湴
+                                     //var resultList = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetCloudLocalAccountlist(doorLock, curAccountObj.SubAccountDistributedMark);
+                                     //if (resultList.ContainsKey(curAccountObj.SubAccountDistributedMark) == true)
+                                     //{
+                                     //    var a = resultList[curAccountObj.SubAccountDistributedMark];
+                                     //    if (a?.ConnectedAccount == curAccountObj.SubAccountDistributedMark)
+                                     //    {
+                                     //        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(() =>
+                                     {
+                                         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;
+                                     });
+                                 }
+                             }
+                         }
+                         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();
+                             });
+                         }
+                     });
+                 }
+             };
+        }
+
+        //鏄惁缁欏瓙璐︽埛鎷ユ湁杩滅▼寮�閿佺殑鏉′欢
+        void HasRemoteUnlockAccess(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) =>
+            {
+                if (e1)
+                {
+                    System.Threading.Tasks.Task.Run(async () =>
+                    {
+                        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.GetMatchDoorlockAccountList(doorLock, curAccountObj);
+                                operateConunt = curAccountDoorLockUserList.Count;
+                                foreach (var curUserId in curAccountDoorLockUserList.Keys)
+                                {
+                                    var curDoorLockUser = curAccountDoorLockUserList[curUserId];
+                                    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.PrimaryId;
+                                        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(() =>
+                                                {
+                                                    if (hasAccess)
+                                                    {
+                                                        new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GiveAccessToSubaccountSuccess), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(this.btnTip);
+                                                    }
+                                                    else
+                                                    {
+                                                        new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GiveAccessToSubaccountFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(this.btnTip);
+                                                    }
+                                                    return;
+                                                });
+                                            }
+                                        }
+                                    }
+                                    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.PrimaryId;
+                                        refreshDoorLockData.IsFreezeUser = false;
+                                        refreshDoorLockData.IsTempUnlockAuthority = false;
+                                        //瑙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
+                            {
+                                //鏂板锛屼笖涓嶅喕缁� 
+                                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 && result.StateCode == "Success")
+                                {
+                                    operateConunt = 0;
+                                }
+                                else
+                                {
+                                    Application.RunOnMainThread(() =>
+                                    {
+                                        if (hasAccess)
+                                        {
+                                            new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GiveAccessToSubaccountSuccess), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(this.btnTip);
+                                        }
+                                        else
+                                        {
+                                            new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GiveAccessToSubaccountFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(this.btnTip);
+                                        }
+                                        return;
+                                    });
+                                }
+                            }
+
+                        }
+                        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();
+                            });
+                        }
+                    });
+                }
+            };
+        }
+
+        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