| | |
| | | var list = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetDoorLockAllAcountUserlist(doorLock); |
| | | var result = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetDoorLockOperateAccess(doorLock, curAccountObj.SubAccountDistributedMark); |
| | | var result1 = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetDoorLockUnlockAccess(doorLock, curAccountObj.SubAccountDistributedMark); |
| | | var result2 = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetDoorLockOperateAccess(doorLock, curAccountObj?.SubAccountDistributedMark); |
| | | if (result2 == true) |
| | | { |
| | | doorLock.IsFreezeAccount[curAccountObj.SubAccountDistributedMark] = true; |
| | | } |
| | | else |
| | | { |
| | | doorLock.IsFreezeAccount[curAccountObj.SubAccountDistributedMark] = false; |
| | | } |
| | | var result3 = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetDoorLockUnlockAccess(doorLock, curAccountObj.SubAccountDistributedMark); |
| | | if (result3 == true) |
| | | { |
| | | doorLock.HasRemoteUnlockAccess[curAccountObj.SubAccountDistributedMark] = true; |
| | | } |
| | | else |
| | | { |
| | | doorLock.HasRemoteUnlockAccess[curAccountObj.SubAccountDistributedMark] = false; |
| | | } |
| | | } |
| | | catch { } |
| | | finally |
| | |
| | | btnRight.Width = Application.GetRealWidth(104); |
| | | btnRight.UnSelectedImagePath = "DoorLock/Switch.png"; |
| | | btnRight.SelectedImagePath = "DoorLock/SwitchOn.png"; |
| | | |
| | | var result = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetDoorLockOperateAccess(doorLock, curAccountObj.SubAccountDistributedMark); |
| | | var result = doorLock.IsFreezeAccount[curAccountObj.SubAccountDistributedMark]; |
| | | if (result == true) |
| | | { |
| | | btnRight.IsSelected = true; |
| | |
| | | btnRight.SelectedImagePath = "DoorLock/SwitchOn.png"; |
| | | line2.Visible = false; |
| | | |
| | | var result1 = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetDoorLockUnlockAccess(doorLock, curAccountObj.SubAccountDistributedMark); |
| | | var result1 = doorLock.HasRemoteUnlockAccess[curAccountObj.SubAccountDistributedMark]; |
| | | if (result1 == true) |
| | | { |
| | | btnRight.IsSelected = true; |
| | |
| | | } |
| | | } |
| | | |
| | | |
| | | //冻结账户 |
| | | void FreezeUser(bool isFreeze) |
| | | { |
| | | var alert = new Alert(Language.StringByID(R.MyInternationalizationString.Tip), Language.StringByID(R.MyInternationalizationString.SureToFreezeAccount), |
| | | Language.StringByID(R.MyInternationalizationString.Cancel), Language.StringByID(R.MyInternationalizationString.Confrim)); |
| | | alert.Show(); |
| | | alert.ResultEventHandler += (sender1, e1) =>
|
| | | var dialog = new Dialog { }; |
| | | string textFreeze = ""; |
| | | if (isFreeze) |
| | | {
|
| | | if (e1)
|
| | | textFreeze = Language.StringByID(R.MyInternationalizationString.SureToFreezeAccount); |
| | | } |
| | | else |
| | | { |
| | | textFreeze = Language.StringByID(R.MyInternationalizationString.SureToUnFreeze); |
| | | } |
| | | var doorDialog = new Shared.Phone.UserCenter.DoorLock.DoorlockDialog(dialog, Language.StringByID(R.MyInternationalizationString.Tip)); |
| | | doorDialog.Show(); |
| | | doorDialog.dialogMidFraFrameLayout.Height = Application.GetRealHeight(58); |
| | | doorDialog.dialogMidFraFrameLayout.X = Application.GetRealWidth(0); |
| | | doorDialog.dialogMidFraFrameLayout.Y = Application.GetRealHeight(202); |
| | | doorDialog.dialogMidFraFrameLayout.AddChidren(doorDialog.dialogMidText); |
| | | doorDialog.dialogMidText.Text = textFreeze; |
| | | doorDialog.dialogMidFraFrameLayout.AddChidren(doorDialog.dialogMidText); |
| | | doorDialog.dialogBtnConfirm.Text = Language.StringByID(R.MyInternationalizationString.DoorlockConfirm); |
| | | doorDialog.dialogBtnCancel.MouseUpEventHandler += (sender1, e1) =>
|
| | | {
|
| | | MidRefresh();
|
| | | dialog.Close(); |
| | | }; |
| | | doorDialog.dialogBtnConfirm.MouseUpEventHandler += (sender1, e1) => |
| | | {
|
| | | System.Threading.Tasks.Task.Run(async () =>
|
| | | {
|
| | |
| | | operateConunt = curAccountDoorLockUserList.Count;
|
| | | var tempGroupId = new List<List<int>>(); |
| | | var tempUserIdList = new List<int> { }; |
| | | var tempUserObjList = new List<ZigBee.Device.DoorLock.CloudDoorLockObj> { }; |
| | | foreach (var curDoorLockUser in curAccountDoorLockUserList)
|
| | | {
|
| | | // 账户中没有门锁用户
|
| | | 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.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
|
| | | }
|
| | | else
|
| | | {
|
| | | new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.UnFreezeFailed), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
|
| | | }
|
| | | return;
|
| | | });
|
| | | }
|
| | | }
|
| | | else |
| | | { |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CloudServerResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance); |
| | | }); |
| | | } |
| | | }
|
| | | 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.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
|
| | | });
|
| | | }
|
| | | }
|
| | | else |
| | | { |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CloudServerResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance); |
| | | }); |
| | | } |
| | | }
|
| | | //
|
| | | }
|
| | | else
|
| | | {
|
| | |
| | | tempUserIdList = new List<int>(); |
| | | } |
| | | tempUserIdList.Add(int.Parse(curDoorLockUser.DoorLockLocalUserId)); |
| | | tempUserObjList.Add(curDoorLockUser); |
| | | } |
| | | } |
| | | tempGroupId.Add(tempUserIdList); |
| | |
| | | int count1 = tempGroupId.Count; |
| | | int count2 = 0; |
| | | |
| | | int tempCount = 0; |
| | | for (int i = 0; i < tempGroupId.Count; i++) |
| | | { |
| | | var tempUserIdList1 = tempGroupId[i]; |
| | |
| | | { |
| | | count2++; |
| | | } |
| | | |
| | | System.Threading.Thread.Sleep(3000); |
| | | //if (tempCount == tempGroupId.Count - 1) |
| | | //{ |
| | | System.Threading.Thread.Sleep(1000); |
| | | //} |
| | | } |
| | | else |
| | | { |
| | |
| | | }); |
| | | return; |
| | | } |
| | | tempCount++; |
| | | } |
| | | |
| | | // 批量冻结门锁中的账户后,准备冻结云端账户 |
| | | if (count2 == count1) |
| | | { |
| | | foreach (var curDoorLockUser in tempUserObjList) |
| | | foreach (var curDoorLockUser in curAccountDoorLockUserList) |
| | | { |
| | | if (isFreeze) |
| | | {
|
| | |
| | | {
|
| | | new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.UnFreezeFailed) + ".", Direction = AMPopTipDirection.None, CloseTime = 2 }.Show(Common.CommonPage.Instance);
|
| | | }
|
| | | return;
|
| | | });
|
| | | }
|
| | | }
|
| | |
| | | });
|
| | | }
|
| | | });
|
| | | }
|
| | | else
|
| | | {
|
| | | MidRefresh();
|
| | | }
|
| | | dialog.Close();
|
| | | }; |
| | | } |
| | | |
| | | //是否给子账户拥有远程开锁的条件 |
| | | void HasRemoteUnlockAccessMethod(bool hasAccess) |
| | | { |
| | | var alert = new Alert(Language.StringByID(R.MyInternationalizationString.Tip), Language.StringByID(R.MyInternationalizationString.SureGiveAccessToSubaccount), |
| | | Language.StringByID(R.MyInternationalizationString.Cancel), Language.StringByID(R.MyInternationalizationString.Confrim)); |
| | | alert.Show(); |
| | | alert.ResultEventHandler += (sender1, e1) => |
| | | var dialog = new Dialog { }; |
| | | var doorDialog = new Shared.Phone.UserCenter.DoorLock.DoorlockDialog(dialog, Language.StringByID(R.MyInternationalizationString.Tip)); |
| | | doorDialog.Show(); |
| | | doorDialog.dialogMidFraFrameLayout.Height = Application.GetRealHeight(58); |
| | | doorDialog.dialogMidFraFrameLayout.X = Application.GetRealWidth(0); |
| | | doorDialog.dialogMidFraFrameLayout.Y = Application.GetRealHeight(202); |
| | | doorDialog.dialogMidFraFrameLayout.AddChidren(doorDialog.dialogMidText); |
| | | doorDialog.dialogMidText.Text = Language.StringByID(R.MyInternationalizationString.SureGiveAccessToSubaccount); |
| | | doorDialog.dialogMidFraFrameLayout.AddChidren(doorDialog.dialogMidText); |
| | | doorDialog.dialogBtnConfirm.Text = Language.StringByID(R.MyInternationalizationString.DoorlockConfirm); |
| | | doorDialog.dialogBtnCancel.MouseUpEventHandler += (sender1, e1) => |
| | | { |
| | | if (e1) |
| | | MidRefresh(); |
| | | dialog.Close(); |
| | | }; |
| | | doorDialog.dialogBtnConfirm.MouseUpEventHandler += (sender1, e1) => |
| | | { |
| | | System.Threading.Tasks.Task.Run(async () => |
| | | { |
| | |
| | | }); |
| | | } |
| | | }); |
| | | } |
| | | else |
| | | { |
| | | MidRefresh(); |
| | | } |
| | | dialog.Close(); |
| | | }; |
| | | } |
| | | |