From 8b9ce384b26c414db32f98e94e088f5334869c2d Mon Sep 17 00:00:00 2001
From: 黄学彪 <hxb@hdlchina.com.cn>
Date: 星期三, 13 十一月 2019 15:36:28 +0800
Subject: [PATCH] 全部合并了代码,安卓和 IOS 都测试通过了

---
 ZigbeeApp/Shared/Phone/UserCenter/DoorLock/MemberFrozenPage.cs |  694 ++++++++++++++++++++++++++++++---------------------------
 1 files changed, 369 insertions(+), 325 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/MemberFrozenPage.cs b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/MemberFrozenPage.cs
index fb955b1..29ec891 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/MemberFrozenPage.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/MemberFrozenPage.cs
@@ -193,13 +193,14 @@
                     }
                     else if (currentIndex == 2)
                     {
+                        btnRight.IsSelected = !btnRight.IsSelected;
                         if (btnRight.IsSelected)
                         {
-                            HasRemoteUnlockAccess(true);
+                            HasRemoteUnlockAccessMethod(true);
                         }
                         else
                         {
-                            HasRemoteUnlockAccess(false);
+                            HasRemoteUnlockAccessMethod(false);
                         }
                     }
                 };
@@ -217,317 +218,340 @@
             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);
-                                                         });
-                                                     }
-                                                 }
-                                             }
+            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(() =>
                                                  {
-                                                     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;
+                                                     new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CloudServerResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(this.btnTip);
                                                  });
                                              }
-                                         }
-                                         else
-                                         {
-                                             Application.RunOnMainThread(() =>
+                                         }
+                                         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
                                              {
-                                                 new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show(this.btnTip);
-                                             });
-                                         }
+                                                 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
-                             {
-                                 //娣诲姞浜戠瀛樺偍淇℃伅
-                                 //鍐荤粨/瑙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();
-                             });
-                         }
-                     });
-                 }
+                                         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 HasRemoteUnlockAccess(bool hasAccess)
+        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));
@@ -556,11 +580,11 @@
                             if (d != null)
                             {
                                 //淇敼浜戠瀛樺偍淇℃伅
-                                var curAccountDoorLockUserList = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetMatchDoorlockAccountList(doorLock, curAccountObj);
-                                operateConunt = curAccountDoorLockUserList.Count;
-                                foreach (var curUserId in curAccountDoorLockUserList.Keys)
+                                var curAccountDoorLockUserList = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetAccountDoorLockUserList(doorLock, curAccountObj.SubAccountDistributedMark);
+
+                                foreach (var curDoorLockUser in curAccountDoorLockUserList)
                                 {
-                                    var curDoorLockUser = curAccountDoorLockUserList[curUserId];
+                                    operateConunt = curAccountDoorLockUserList.Count;
                                     if (hasAccess)
                                     {
                                         var refreshDoorLockData = new ZigBee.Device.DoorLock.RefreshDoorLockData();
@@ -573,10 +597,10 @@
                                         {
                                             refreshDoorLockData.DoorLockId = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint;
                                         }
-                                        refreshDoorLockData.PrimaryId = curDoorLockUser.PrimaryId;
+                                        refreshDoorLockData.PrimaryId = curDoorLockUser.Id;
                                         refreshDoorLockData.IsFreezeUser = false;
                                         refreshDoorLockData.IsTempUnlockAuthority = true;
-                                        //鍐荤粨浜戠
+                                        // 鎺堟潈
                                         var result = await ZigBee.Device.DoorLock.SendDoorLockToServer("DoorLock/UpdateDoorLock", refreshDoorLockData);
                                         if (result != null)
                                         {
@@ -588,17 +612,16 @@
                                             {
                                                 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;
+                                                    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
@@ -613,10 +636,10 @@
                                         {
                                             refreshDoorLockData.DoorLockId = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint;
                                         }
-                                        refreshDoorLockData.PrimaryId = curDoorLockUser.PrimaryId;
+                                        refreshDoorLockData.PrimaryId = curDoorLockUser.Id;
                                         refreshDoorLockData.IsFreezeUser = false;
                                         refreshDoorLockData.IsTempUnlockAuthority = false;
-                                        //瑙e喕浜戠
+                                        //鍙栨秷鏉冮檺
                                         var result = await ZigBee.Device.DoorLock.SendDoorLockToServer("DoorLock/UpdateDoorLock", refreshDoorLockData);
                                         if (result != null)
                                         {
@@ -628,9 +651,16 @@
                                             {
                                                 Application.RunOnMainThread(() =>
                                                 {
-                                                    new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.FreezeFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(this.btnTip);
+                                                    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);
+                                            });
                                         }
                                     }
                                 }
@@ -660,23 +690,33 @@
                                     addLockInfo.IsTempUnlockAuthority = false;
                                 }
                                 var result = await ZigBee.Device.DoorLock.SendDoorLockToServer("DoorLock/AddDoorLock", addLockInfo);
-                                if (result != null && result.StateCode == "Success")
+                                if (result != null)
                                 {
-                                    operateConunt = 0;
+                                    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(() =>
                                     {
-                                        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;
+                                        new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CloudServerResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(this.btnTip);
                                     });
                                 }
                             }
@@ -705,6 +745,10 @@
                         }
                     });
                 }
+                else
+                {
+                    MidRefresh();
+                }
             };
         }
 

--
Gitblit v1.8.0