HDL Home App 第二版本 旧平台金堂用 正在使用
黄学彪
2019-11-13 8b9ce384b26c414db32f98e94e088f5334869c2d
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;
                                             //解冻云端
                                             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;
                                         }
                                         //冻结/解冻用户
                                         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;
                                                 //解冻云端
                                                 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];
                                             //解冻云端
                                             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;
                                         }
                                         //冻结/解冻用户
                                         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];
                                                 //解冻云端
                                                 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
                             {
                                 //添加云端存储信息
                                 //冻结/解冻云端
                                 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
                             {
                                 //添加云端存储信息
                                 //冻结/解冻云端
                                 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;
                                        //解冻云端
                                        //取消权限
                                        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();
                }
            };
        }