| | |
| | | } |
| | | else if (currentIndex == 2) |
| | | { |
| | | btnRight.IsSelected = !btnRight.IsSelected; |
| | | if (btnRight.IsSelected) |
| | | { |
| | | HasRemoteUnlockAccess(true); |
| | | HasRemoteUnlockAccessMethod(true); |
| | | } |
| | | else |
| | | { |
| | | HasRemoteUnlockAccess(false); |
| | | HasRemoteUnlockAccessMethod(false); |
| | | } |
| | | } |
| | | }; |
| | |
| | | } |
| | | 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) |
| | |
| | | }); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CloudServerResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(this.btnTip); |
| | | }); |
| | | } |
| | | } |
| | | else |
| | | { |
| | |
| | | } |
| | | 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) |
| | |
| | | new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.FreezeFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(this.btnTip); |
| | | }); |
| | | } |
| | | }
|
| | | else |
| | | { |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CloudServerResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(this.btnTip); |
| | | }); |
| | | } |
| | | } |
| | | } |
| | |
| | | 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) |
| | |
| | | }); |
| | | } |
| | | } |
| | | 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) |
| | | { |
| | |
| | | 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) |
| | |
| | | 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 |
| | |
| | | { |
| | | addLockInfo.IsFreezeUser = false; |
| | | } |
| | | addLockInfo.IsTempUnlockAuthority = doorLock.HasRemoteUnlockAccess[curAccountObj.SubAccountDistributedMark]; |
| | | var result = await ZigBee.Device.DoorLock.SendDoorLockToServer("DoorLock/AddDoorLock", addLockInfo); |
| | | if (result != null && result.StateCode == "Success") |
| | | if (result != null) |
| | | { |
| | | if (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 |
| | | { |
| | |
| | | new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.UnFreezeFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(this.btnTip); |
| | | } |
| | | return; |
| | | }); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CloudServerResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(this.btnTip); |
| | | |
| | | }); |
| | | } |
| | | } |
| | |
| | | } |
| | | }); |
| | | } |
| | | else
|
| | | {
|
| | | 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)); |
| | |
| | | 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(); |
| | |
| | | { |
| | | 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) |
| | | { |
| | |
| | | { |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | if (hasAccess) |
| | | { |
| | | new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GiveAccessToSubaccountSuccess), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(this.btnTip); |
| | | 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.GiveAccessToSubaccountFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(this.btnTip); |
| | | } |
| | | return; |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CloudServerResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(this.btnTip); |
| | | }); |
| | | } |
| | | } |
| | | } |
| | | else |
| | |
| | | { |
| | | 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) |
| | | { |
| | |
| | | { |
| | | 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); |
| | | }); |
| | | } |
| | | } |
| | | } |
| | |
| | | addLockInfo.IsTempUnlockAuthority = false; |
| | | } |
| | | var result = await ZigBee.Device.DoorLock.SendDoorLockToServer("DoorLock/AddDoorLock", addLockInfo); |
| | | if (result != null && result.StateCode == "Success") |
| | | if (result != null) |
| | | { |
| | | if (result.StateCode == "Success") |
| | | { |
| | | operateConunt = 0; |
| | | } |
| | |
| | | { |
| | | if (hasAccess) |
| | | { |
| | | new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GiveAccessToSubaccountSuccess), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(this.btnTip); |
| | | 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.GiveAccessToSubaccountFailed), 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); |
| | | } |
| | | return; |
| | | }); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CloudServerResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(this.btnTip); |
| | | }); |
| | | } |
| | | } |
| | |
| | | } |
| | | }); |
| | | } |
| | | else |
| | | { |
| | | MidRefresh(); |
| | | } |
| | | }; |
| | | } |
| | | |