From f71e74b5f0d2716fbf05da016cdaa18d64e09f80 Mon Sep 17 00:00:00 2001 From: xm <1271024303@qq.com> Date: 星期四, 31 十二月 2020 17:01:18 +0800 Subject: [PATCH] 又换完成最新门锁。空气质量传感器完成数据和基本配置功能。开发图表和自动化的同事可下载此代码 --- ZigbeeApp/Shared/Phone/UserCenter/DoorLock/MemberFrozenPage.cs | 1480 +++++++++++++++++++++++++++++----------------------------- 1 files changed, 740 insertions(+), 740 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/MemberFrozenPage.cs b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/MemberFrozenPage.cs old mode 100755 new mode 100644 index e694c22..4ef606f --- a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/MemberFrozenPage.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/MemberFrozenPage.cs @@ -5,787 +5,787 @@ using ZigBee.Device; namespace Shared.Phone.UserCenter.DoorLock { - public class MemberFrozenPage : DoorLockCommonLayout + public class MemberFrozenPage : DoorLockCommonLayout + { + /// <summary> + /// 鏋勯�犲嚱鏁� + /// </summary> + /// <param name="doorLock"></param> + public MemberFrozenPage(ZigBee.Device.DoorLock doorLock, Shared.Phone.UserCenter.MemberInfoRes accountObj) { - /// <summary> - /// 鏋勯�犲嚱鏁� - /// </summary> - /// <param name="doorLock"></param> - public MemberFrozenPage(ZigBee.Device.DoorLock doorLock, Shared.Phone.UserCenter.MemberInfoRes accountObj) + this.doorLock = doorLock; + this.curAccountObj = accountObj; + BackgroundColor = Shared.Common.ZigbeeColor.Current.GXCTopViewBackgroundColor; + } + + #region 鍙橀噺鐢虫槑 + /// <summary> + /// 褰撳墠闂ㄩ攣 + /// </summary> + ZigBee.Device.DoorLock doorLock; + /// <summary> + /// 褰撳墠鎴愬憳瀵硅薄v + /// </summary> + Shared.Phone.UserCenter.MemberInfoRes curAccountObj; + /// <summary> + /// 鍒锋柊View + /// </summary> + VerticalRefreshLayout bodyView; + #endregion + + /// <summary> + /// 鍒濆鍖栨暟鎹俊鎭� + /// </summary> + void ReadDoorLockUserInfo() + { + System.Threading.Tasks.Task.Run(async () => + { + try { - this.doorLock = doorLock; - this.curAccountObj = accountObj; - BackgroundColor = Shared.Common.ZigbeeColor.Current.GXCTopViewBackgroundColor; + 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 + { + Application.RunOnMainThread(() => + { + MidRefresh(); + bodyView.EndHeaderRefreshing(); + }); + } + }); + } + + /// <summary> + /// UI鏄剧ず + /// </summary> + public void Show() + { + string accountTitle = ""; + if (curAccountObj.UserName != null) + { + accountTitle = curAccountObj.UserName; + } + else + { + accountTitle = curAccountObj.Account; + } + this.TopFrameLayout(this, accountTitle); + + EventHandler<MouseEventArgs> eHandlerBack = (sender, e) => + { + RemoveFromParent(); + }; + this.btnBack.MouseUpEventHandler += eHandlerBack; + this.btnBackFrameLayout.MouseUpEventHandler += eHandlerBack; + this.MidFrameLayout(this); + + bodyView = new VerticalRefreshLayout() + { + }; + this.midFrameLayout.AddChidren(bodyView); + MidRefresh(); + + bodyView.BeginHeaderRefreshingAction += () => + { + bodyView.BeginHeaderRefreshing(); + ReadDoorLockUserInfo(); + }; + } + /// <summary> + /// 涓儴甯冨眬 + /// </summary> + public async void MidRefresh() + { + bodyView.RemoveAll(); + + for (int i = 0; i < 3; i++) + { + var RowView = new FrameLayout() + { + Height = Application.GetRealHeight(127 + 23), + BackgroundColor = Shared.Common.ZigbeeColor.Current.XMWhite, + }; + bodyView.AddChidren(RowView); + + var btnText = new Button() + { + X = Application.GetRealWidth(58), + Width = Application.GetRealWidth(300), + TextAlignment = TextAlignment.CenterLeft, + TextColor = Shared.Common.ZigbeeColor.Current.XMTopTitleText, + Gravity = Gravity.CenterVertical, + TextSize = 14, + }; + RowView.AddChidren(btnText); + + var btnRightFrameLayout = new FrameLayout() + { + Width = Application.GetRealWidth(204), + X = Application.GetRealWidth(919 - 58), + Y = Application.GetRealHeight(25), + }; + RowView.AddChidren(btnRightFrameLayout); + + var btnRight = new Button() + { + Height = Application.GetMinRealAverage(60), + Width = Application.GetMinRealAverage(60), + X = Application.GetRealWidth(72), + Y = Application.GetRealHeight(32), + UnSelectedImagePath = "DoorLock/RightIcon.png", + }; + btnRightFrameLayout.AddChidren(btnRight); + + var line2 = new Button() + { + Y = RowView.Height - 1, + X = Application.GetRealWidth(58), + Width = Application.GetRealWidth(962), + Height = 1, + BackgroundColor = Shared.Common.ZigbeeColor.Current.XMRowLine, + }; + RowView.AddChidren(line2); + + if (i == 0) + { + btnText.Text = Language.StringByID(R.MyInternationalizationString.LockMethod); + } + else if (i == 1) + { + btnText.Text = Language.StringByID(R.MyInternationalizationString.FrozenUser); + btnRight.X = Application.GetRealWidth(50); + btnRight.Y = Application.GetRealHeight(32); + btnRight.Height = Application.GetMinRealAverage(63); + btnRight.Width = Application.GetMinRealAverage(104); + btnRight.UnSelectedImagePath = "DoorLock/Switch.png"; + btnRight.SelectedImagePath = "DoorLock/SwitchOn.png"; + var result = doorLock.IsFreezeAccount[curAccountObj.SubAccountDistributedMark]; + if (result == true) + { + btnRight.IsSelected = true; + } + else + { + btnRight.IsSelected = false; + } + } + else if (i == 2) + { + if (doorLock.IsFreezeAccount[curAccountObj.SubAccountDistributedMark] == false) + { + btnText.Text = Language.StringByID(R.MyInternationalizationString.TempUnlockPermission); + btnRight.X = Application.GetRealWidth(50); + btnRight.Y = Application.GetRealHeight(32); + btnRight.Height = Application.GetMinRealAverage(63); + btnRight.Width = Application.GetMinRealAverage(104); + btnRight.UnSelectedImagePath = "DoorLock/Switch.png"; + btnRight.SelectedImagePath = "DoorLock/SwitchOn.png"; + line2.Visible = false; + + var result1 = doorLock.HasRemoteUnlockAccess[curAccountObj.SubAccountDistributedMark]; + if (result1 == true) + { + btnRight.IsSelected = true; + } + else + { + btnRight.IsSelected = false; + } + } + else + { + btnText.Width = 0; + btnRight.Width = 0; + line2.Width = 0; + RowView.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMMidFrameLayout; + } } - #region 鍙橀噺鐢虫槑 - /// <summary> - /// 褰撳墠闂ㄩ攣 - /// </summary> - ZigBee.Device.DoorLock doorLock; - /// <summary> - /// 褰撳墠鎴愬憳瀵硅薄v - /// </summary> - Shared.Phone.UserCenter.MemberInfoRes curAccountObj; - /// <summary> - /// 鍒锋柊View - /// </summary> - VerticalRefreshLayout bodyView; - #endregion - - /// <summary> - /// 鍒濆鍖栨暟鎹俊鎭� - /// </summary> - void ReadDoorLockUserInfo() + int currentIndex = i; + EventHandler<MouseEventArgs> eHandler = (sender, e) => { - System.Threading.Tasks.Task.Run(async () => + if (currentIndex == 0) + { + var unLockMethod = new Shared.Phone.UserCenter.DoorLock.UnLockMethod(doorLock, curAccountObj); + Shared.Phone.UserView.HomePage.Instance.AddChidren(unLockMethod); + Shared.Phone.UserView.HomePage.Instance.PageIndex += 1; + unLockMethod.Show(); + } + else if (currentIndex == 1) + { + if (!btnRight.IsSelected) { - try + FreezeUser(true); + } + else + { + FreezeUser(false); + } + } + else if (currentIndex == 2) + { + if (!btnRight.IsSelected) + { + HasRemoteUnlockAccessMethod(true); + } + else + { + HasRemoteUnlockAccessMethod(false); + } + } + }; + if (i == 0) + { + btnRightFrameLayout.MouseUpEventHandler += eHandler; + btnRight.MouseUpEventHandler += eHandler; + RowView.MouseUpEventHandler += eHandler; + btnText.MouseUpEventHandler += eHandler; + } + else if (i == 1) + { + btnRightFrameLayout.MouseUpEventHandler += eHandler; + btnRight.MouseUpEventHandler += eHandler; + } + else if (i == 2) + { + btnRightFrameLayout.MouseUpEventHandler += eHandler; + btnRight.MouseUpEventHandler += eHandler; + } + } + } + + /// <summary> + /// 鍐荤粨璐︽埛 + /// </summary> + /// <param name="isFreeze"></param> + void FreezeUser(bool isFreeze) + { + var dialog = new Dialog { }; + string textFreeze = ""; + if (isFreeze) + { + textFreeze = Language.StringByID(R.MyInternationalizationString.SureToFreezeAccount); + } + else + { + textFreeze = Language.StringByID(R.MyInternationalizationString.SureToUnFreeze); + } + + string msg = Language.StringByID(R.MyInternationalizationString.GoPersonalCenter); + var alert = new Shared.Phone.UserCenter.ShowMsgControl(ShowMsgType.Confirm, textFreeze, Language.StringByID(R.MyInternationalizationString.DoorlockConfirm)); + alert.Show(); + //浣跨敤纭鍨嬪脊妗嗘椂,鐨勫洖璋冨嚱鏁� + alert.ConfirmClickEvent += () => + { + System.Threading.Tasks.Task.Run(async () => + { + int successConunt = 0; + int operateConunt = -1; + Application.RunOnMainThread(() => { CommonPage.Loading.Start(""); }); + 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; + var tempGroupId = new List<List<int>>(); + var tempUserIdList = new List<int> { }; + foreach (var curDoorLockUser in curAccountDoorLockUserList) { - 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) + // 璐︽埛涓病鏈夐棬閿佺敤鎴� + if (string.IsNullOrEmpty(curDoorLockUser.DoorLockLocalUserId)) + { + } + else + { + if (tempUserIdList.Count == 9) { - doorLock.IsFreezeAccount[curAccountObj.SubAccountDistributedMark] = true; + tempGroupId.Add(tempUserIdList); + tempUserIdList = new List<int>(); } - 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; - } + tempUserIdList.Add(int.Parse(curDoorLockUser.DoorLockLocalUserId)); + } } - catch { } - finally + tempGroupId.Add(tempUserIdList); + //鎵归噺鍐荤粨闂ㄩ攣涓殑璐︽埛 + ZigBee.Device.DoorLock.AccessType accessType; + if (isFreeze) { + accessType = ZigBee.Device.DoorLock.AccessType.DisEnableMoreUsers; + } + else + { + accessType = ZigBee.Device.DoorLock.AccessType.EnableMoreUsers; + } + //鍐荤粨/瑙e喕鐢ㄦ埛 + int count1 = tempGroupId.Count; + if (tempGroupId.Count == 1) + { + foreach (var a in tempGroupId) + { + if (a.Count == 0) + { + count1 = 0; + break; + } + } + } + int count2 = 0; + + int tempCount = 0; + for (int i = 0; i < tempGroupId.Count; i++) + { + var tempUserIdList1 = tempGroupId[i]; + if (tempUserIdList1.Count == 0) + { + break; + } + var passData = doorLock.FreezeAccountData(tempUserIdList1, accessType); + var resultData = await doorLock.DefaultControlAsync(passData); + if (resultData != null && resultData.defaultControlResponseData != null) + { + if (resultData.defaultControlResponseData.status == 32) + { + count2++; + } + else if (resultData.defaultControlResponseData.status == 33) + { + count2++; + } + System.Threading.Thread.Sleep(1000); + } + else + { Application.RunOnMainThread(() => - { - MidRefresh(); - bodyView.EndHeaderRefreshing(); - }); + { + new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 2 }.Show(Common.CommonPage.Instance); + }); + return; + } + tempCount++; } - }); - } - /// <summary> - /// UI鏄剧ず - /// </summary> - public void Show() - { - string accountTitle = ""; - if (curAccountObj.UserName != null) - { - accountTitle = curAccountObj.UserName; - } - else - { - accountTitle = curAccountObj.Account; - } - this.TopFrameLayout(this, accountTitle); - - EventHandler<MouseEventArgs> eHandlerBack = (sender, e) => - { - RemoveFromParent(); - }; - this.btnBack.MouseUpEventHandler += eHandlerBack; - this.btnBackFrameLayout.MouseUpEventHandler += eHandlerBack; - this.MidFrameLayout(this); - - bodyView = new VerticalRefreshLayout() - { - }; - this.midFrameLayout.AddChidren(bodyView); - MidRefresh(); - - bodyView.BeginHeaderRefreshingAction += () => - { - bodyView.BeginHeaderRefreshing(); - ReadDoorLockUserInfo(); - }; - } - /// <summary> - /// 涓儴甯冨眬 - /// </summary> - public async void MidRefresh() - { - bodyView.RemoveAll(); - - for (int i = 0; i < 3; i++) - { - var RowView = new FrameLayout() + // 鎵归噺鍐荤粨闂ㄩ攣涓殑璐︽埛鍚庯紝鍑嗗鍐荤粨浜戠璐︽埛 + if (count2 == count1) { - Height = Application.GetRealHeight(127 + 23), - BackgroundColor = Shared.Common.ZigbeeColor.Current.XMWhite, - }; - bodyView.AddChidren(RowView); - - var btnText = new Button() - { - X = Application.GetRealWidth(58), - Width = Application.GetRealWidth(300), - TextAlignment = TextAlignment.CenterLeft, - TextColor = Shared.Common.ZigbeeColor.Current.XMTopTitleText, - Gravity = Gravity.CenterVertical, - TextSize = 14, - }; - RowView.AddChidren(btnText); - - var btnRightFrameLayout = new FrameLayout() - { - Width = Application.GetRealWidth(204), - X = Application.GetRealWidth(919 - 58), - Y = Application.GetRealHeight(25), - }; - RowView.AddChidren(btnRightFrameLayout); - - var btnRight = new Button() - { - Height = Application.GetRealHeight(60), - Width = Application.GetRealWidth(60), - X = Application.GetRealWidth(72), - Y = Application.GetRealHeight(32), - UnSelectedImagePath = "DoorLock/RightIcon.png", - }; - btnRightFrameLayout.AddChidren(btnRight); - - var line2 = new Button() - { - Y = RowView.Height - 1, - X = Application.GetRealWidth(58), - Width = Application.GetRealWidth(962), - Height = 1, - BackgroundColor = Shared.Common.ZigbeeColor.Current.XMRowLine, - }; - RowView.AddChidren(line2); - - if (i == 0) - { - btnText.Text = Language.StringByID(R.MyInternationalizationString.LockMethod); - } - else if (i == 1) - { - btnText.Text = Language.StringByID(R.MyInternationalizationString.FrozenUser); - btnRight.X = Application.GetRealWidth(50); - btnRight.Y = Application.GetRealHeight(32); - btnRight.Height = Application.GetRealHeight(63); - btnRight.Width = Application.GetRealWidth(104); - btnRight.UnSelectedImagePath = "DoorLock/Switch.png"; - btnRight.SelectedImagePath = "DoorLock/SwitchOn.png"; - var result = doorLock.IsFreezeAccount[curAccountObj.SubAccountDistributedMark]; - if (result == true) + foreach (var curDoorLockUser in curAccountDoorLockUserList) + { + if (isFreeze) { - btnRight.IsSelected = true; + 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.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 = 2 }.Show(Common.CommonPage.Instance); + }); + } } else { - btnRight.IsSelected = false; - } - } - else if (i == 2) - { - if (doorLock.IsFreezeAccount[curAccountObj.SubAccountDistributedMark] == false) - { - btnText.Text = Language.StringByID(R.MyInternationalizationString.TempUnlockPermission); - btnRight.X = Application.GetRealWidth(50); - btnRight.Y = Application.GetRealHeight(32); - btnRight.Height = Application.GetRealHeight(63); - btnRight.Width = Application.GetRealWidth(104); - btnRight.UnSelectedImagePath = "DoorLock/Switch.png"; - btnRight.SelectedImagePath = "DoorLock/SwitchOn.png"; - line2.Visible = false; + 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; + } - var result1 = doorLock.HasRemoteUnlockAccess[curAccountObj.SubAccountDistributedMark]; - if (result1 == true) + 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") { - btnRight.IsSelected = true; + successConunt++; } else { - btnRight.IsSelected = false; - } - } - else - { - btnText.Width = 0; - btnRight.Width = 0; - line2.Width = 0; - RowView.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMMidFrameLayout; - } - } - - int currentIndex = i; - EventHandler<MouseEventArgs> eHandler = (sender, e) => - { - if (currentIndex == 0) - { - var unLockMethod = new Shared.Phone.UserCenter.DoorLock.UnLockMethod(doorLock, curAccountObj); - Shared.Phone.UserView.HomePage.Instance.AddChidren(unLockMethod); - Shared.Phone.UserView.HomePage.Instance.PageIndex += 1; - unLockMethod.Show(); - } - else if (currentIndex == 1) - { - if (!btnRight.IsSelected) - { - FreezeUser(true); - } - else - { - FreezeUser(false); - } - } - else if (currentIndex == 2) - { - if (!btnRight.IsSelected) - { - HasRemoteUnlockAccessMethod(true); - } - else - { - HasRemoteUnlockAccessMethod(false); - } - } - }; - if (i == 0) - { - btnRightFrameLayout.MouseUpEventHandler += eHandler; - btnRight.MouseUpEventHandler += eHandler; - RowView.MouseUpEventHandler += eHandler; - btnText.MouseUpEventHandler += eHandler; - } - else if (i == 1) - { - btnRightFrameLayout.MouseUpEventHandler += eHandler; - btnRight.MouseUpEventHandler += eHandler; - } - else if (i == 2) - { - btnRightFrameLayout.MouseUpEventHandler += eHandler; - btnRight.MouseUpEventHandler += eHandler; - } - } - } - - /// <summary> - /// 鍐荤粨璐︽埛 - /// </summary> - /// <param name="isFreeze"></param> - void FreezeUser(bool isFreeze) - { - var dialog = new Dialog { }; - string textFreeze = ""; - if (isFreeze) - { - textFreeze = Language.StringByID(R.MyInternationalizationString.SureToFreezeAccount); - } - else - { - textFreeze = Language.StringByID(R.MyInternationalizationString.SureToUnFreeze); - } - - string msg = Language.StringByID(R.MyInternationalizationString.GoPersonalCenter); - var alert = new Shared.Phone.UserCenter.ShowMsgControl(ShowMsgType.Confirm, textFreeze, Language.StringByID(R.MyInternationalizationString.DoorlockConfirm)); - alert.Show(); - //浣跨敤纭鍨嬪脊妗嗘椂,鐨勫洖璋冨嚱鏁� - alert.ConfirmClickEvent += () => - { - System.Threading.Tasks.Task.Run(async () => - { - int successConunt = 0; - int operateConunt = -1; - Application.RunOnMainThread(() => { CommonPage.Loading.Start(""); }); - 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; - var tempGroupId = new List<List<int>>(); - var tempUserIdList = new List<int> { }; - foreach (var curDoorLockUser in curAccountDoorLockUserList) - { - // 璐︽埛涓病鏈夐棬閿佺敤鎴� - if (string.IsNullOrEmpty(curDoorLockUser.DoorLockLocalUserId)) - { - } - else - { - if (tempUserIdList.Count == 9) - { - tempGroupId.Add(tempUserIdList); - tempUserIdList = new List<int>(); - } - tempUserIdList.Add(int.Parse(curDoorLockUser.DoorLockLocalUserId)); - } - } - tempGroupId.Add(tempUserIdList); - //鎵归噺鍐荤粨闂ㄩ攣涓殑璐︽埛 - ZigBee.Device.DoorLock.AccessType accessType; - if (isFreeze) - { - accessType = ZigBee.Device.DoorLock.AccessType.DisEnableMoreUsers; - } - else - { - accessType = ZigBee.Device.DoorLock.AccessType.EnableMoreUsers; - } - //鍐荤粨/瑙e喕鐢ㄦ埛 - int count1 = tempGroupId.Count; - if (tempGroupId.Count == 1) - { - foreach (var a in tempGroupId) + Application.RunOnMainThread(() => { - if (a.Count == 0) - { - count1 = 0; - break; - } - } - } - int count2 = 0; - - int tempCount = 0; - for (int i = 0; i < tempGroupId.Count; i++) + 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 = 2 }.Show(Common.CommonPage.Instance); + }); + } + } + } + } + else + { + Application.RunOnMainThread(() => + { + if (isFreeze) { - var tempUserIdList1 = tempGroupId[i]; - if (tempUserIdList1.Count == 0) - { - break; - } - var passData = doorLock.FreezeAccountData(tempUserIdList1, accessType); - var resultData = await doorLock.DefaultControlAsync(passData); - if (resultData != null && resultData.defaultControlResponseData != null) - { - if (resultData.defaultControlResponseData.status == 32) - { - count2++; - } - else if (resultData.defaultControlResponseData.status == 33) - { - count2++; - } - System.Threading.Thread.Sleep(1000); - } - else - { - Application.RunOnMainThread(() => - { - new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 2 }.Show(Common.CommonPage.Instance); - }); - return; - } - tempCount++; - } - - // 鎵归噺鍐荤粨闂ㄩ攣涓殑璐︽埛鍚庯紝鍑嗗鍐荤粨浜戠璐︽埛 - if (count2 == count1) - { - foreach (var curDoorLockUser in curAccountDoorLockUserList) - { - 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.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.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 = 2 }.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.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.None, CloseTime = 1 }.Show(Common.CommonPage.Instance); - }); - } - } - else - { - Application.RunOnMainThread(() => - { - new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CloudServerResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 2 }.Show(Common.CommonPage.Instance); - }); - } - } - } - } - else - { - Application.RunOnMainThread(() => - { - if (isFreeze) - { - new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.FreezeFailed) + ".", Direction = AMPopTipDirection.None, CloseTime = 2 }.Show(Common.CommonPage.Instance); - } - else - { - new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.UnFreezeFailed) + ".", Direction = AMPopTipDirection.None, CloseTime = 2 }.Show(Common.CommonPage.Instance); - } - }); - } - } - 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.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; - }); - } + new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.FreezeFailed) + ".", Direction = AMPopTipDirection.None, CloseTime = 2 }.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); - - }); - } - } - } - 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(); - }); - } - }); - }; - } - - /// <summary> - /// 鏄惁缁欏瓙璐︽埛鎷ユ湁杩滅▼寮�閿佺殑鏉′欢 - /// </summary> - /// <param name="hasAccess"></param> - void HasRemoteUnlockAccessMethod(bool hasAccess) - { - string msg = Language.StringByID(R.MyInternationalizationString.SureGiveAccessToSubaccount); - if (!hasAccess) - { - msg = Language.StringByID(R.MyInternationalizationString.SureCancelAccessToSubaccount); - } - var alert = new Shared.Phone.UserCenter.ShowMsgControl(ShowMsgType.Confirm, msg, Language.StringByID(R.MyInternationalizationString.DoorlockConfirm)); - alert.Show(); - //浣跨敤纭鍨嬪脊妗嗘椂,鐨勫洖璋冨嚱鏁� - alert.ConfirmClickEvent += () => - { - System.Threading.Tasks.Task.Run(async () => - { - int successConunt = 0; - int operateConunt = -1; - Application.RunOnMainThread(() => { CommonPage.Loading.Start("Loading..."); }); - try - { - var resultList = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetAccountDoorLockUserList(doorLock, curAccountObj.SubAccountDistributedMark); - var uList = new List<string> { }; - if (resultList != null) - { - foreach (var a in resultList) - { - uList.Add(a.CloudAccountId); + new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.UnFreezeFailed) + ".", Direction = AMPopTipDirection.None, CloseTime = 2 }.Show(Common.CommonPage.Instance); } - } - var d = uList.Find((value) => { return value == curAccountObj.SubAccountDistributedMark; }); - if (d != null) + }); + } + } + 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.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(() => { - //淇敼浜戠瀛樺偍淇℃伅 - var curAccountDoorLockUserList = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetAccountDoorLockUserList(doorLock, curAccountObj.SubAccountDistributedMark); + new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CloudServerResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance); - foreach (var curDoorLockUser in curAccountDoorLockUserList) + }); + } + } + } + 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(); + }); + } + }); + }; + } + + /// <summary> + /// 鏄惁缁欏瓙璐︽埛鎷ユ湁杩滅▼寮�閿佺殑鏉′欢 + /// </summary> + /// <param name="hasAccess"></param> + void HasRemoteUnlockAccessMethod(bool hasAccess) + { + string msg = Language.StringByID(R.MyInternationalizationString.SureGiveAccessToSubaccount); + if (!hasAccess) + { + msg = Language.StringByID(R.MyInternationalizationString.SureCancelAccessToSubaccount); + } + var alert = new Shared.Phone.UserCenter.ShowMsgControl(ShowMsgType.Confirm, msg, Language.StringByID(R.MyInternationalizationString.DoorlockConfirm)); + alert.Show(); + //浣跨敤纭鍨嬪脊妗嗘椂,鐨勫洖璋冨嚱鏁� + alert.ConfirmClickEvent += () => + { + System.Threading.Tasks.Task.Run(async () => + { + int successConunt = 0; + int operateConunt = -1; + Application.RunOnMainThread(() => { CommonPage.Loading.Start("Loading..."); }); + try + { + var resultList = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetAccountDoorLockUserList(doorLock, curAccountObj.SubAccountDistributedMark); + var uList = new List<string> { }; + if (resultList != null) + { + foreach (var a in resultList) + { + uList.Add(a.CloudAccountId); + } + } + var d = uList.Find((value) => { return value == curAccountObj.SubAccountDistributedMark; }); + if (d != null) + { + //淇敼浜戠瀛樺偍淇℃伅 + var curAccountDoorLockUserList = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetAccountDoorLockUserList(doorLock, curAccountObj.SubAccountDistributedMark); + + foreach (var curDoorLockUser in curAccountDoorLockUserList) + { + operateConunt = curAccountDoorLockUserList.Count; + if (hasAccess) + { + var refreshDoorLockData = new ZigBee.Device.DoorLock.RefreshDoorLockData(); + if (UserCenterResourse.UserInfo.AuthorityNo != 1) + { + refreshDoorLockData.LoginAccessToken = UserCenterLogic.GetConnectMainToken(); + refreshDoorLockData.IsOtherAccountCtrl = true; + } + if (doorLock.DeviceAddr != null) + { + refreshDoorLockData.DoorLockId = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint; + } + refreshDoorLockData.PrimaryId = curDoorLockUser.Id; + refreshDoorLockData.IsFreezeUser = false; + refreshDoorLockData.IsTempUnlockAuthority = true; + // 鎺堟潈 + var result = await ZigBee.Device.DoorLock.SendDoorLockToServer("DoorLock/UpdateDoorLock", refreshDoorLockData); + if (result != null) + { + if (result.StateCode == "Success") + { + successConunt++; + } + else + { + Application.RunOnMainThread(() => + { + new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GiveAccessToSubaccountFailed), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance); + }); + } + } + else + { + Application.RunOnMainThread(() => { - operateConunt = curAccountDoorLockUserList.Count; + 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 = 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.CancelAccessToSubaccountFailed), 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 + { + //鏂板锛屼笖涓嶅喕缁� + var addLockInfo = new ZigBee.Device.DoorLock.AddDoorLockData(); + if (UserCenterResourse.UserInfo.AuthorityNo != 1) + { + addLockInfo.LoginAccessToken = UserCenterLogic.GetConnectMainToken(); + addLockInfo.IsOtherAccountCtrl = true; + } + addLockInfo.CloudAccountId = curAccountObj.SubAccountDistributedMark; + if (doorLock.DeviceAddr != null) + { + addLockInfo.DoorLockId = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint; + } + addLockInfo.EntryTime = System.DateTime.Now; + addLockInfo.IsFreezeUser = false; + if (hasAccess) + { + addLockInfo.IsTempUnlockAuthority = true; + } + else + { + addLockInfo.IsTempUnlockAuthority = false; + } + var result = await ZigBee.Device.DoorLock.SendDoorLockToServer("DoorLock/AddDoorLock", addLockInfo); + if (result != null) + { + if (result.StateCode == "Success") + { + operateConunt = 0; + } + else + { + Application.RunOnMainThread(() => + { if (hasAccess) { - var refreshDoorLockData = new ZigBee.Device.DoorLock.RefreshDoorLockData(); - if (UserCenterResourse.UserInfo.AuthorityNo != 1) - { - refreshDoorLockData.LoginAccessToken = UserCenterLogic.GetConnectMainToken(); - refreshDoorLockData.IsOtherAccountCtrl = true; - } - if (doorLock.DeviceAddr != null) - { - refreshDoorLockData.DoorLockId = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint; - } - refreshDoorLockData.PrimaryId = curDoorLockUser.Id; - refreshDoorLockData.IsFreezeUser = false; - refreshDoorLockData.IsTempUnlockAuthority = true; - // 鎺堟潈 - var result = await ZigBee.Device.DoorLock.SendDoorLockToServer("DoorLock/UpdateDoorLock", refreshDoorLockData); - if (result != null) - { - if (result.StateCode == "Success") - { - successConunt++; - } - else - { - Application.RunOnMainThread(() => - { - new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GiveAccessToSubaccountFailed), 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); - }); - } + new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GiveAccessToSubaccountFailed), 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 = 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.CancelAccessToSubaccountFailed), 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); - }); - } + new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CancelAccessToSubaccountFailed), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance); } - } - } - else + return; + }); + } + } + else + { + Application.RunOnMainThread(() => { - //鏂板锛屼笖涓嶅喕缁� - var addLockInfo = new ZigBee.Device.DoorLock.AddDoorLockData(); - if (UserCenterResourse.UserInfo.AuthorityNo != 1) - { - addLockInfo.LoginAccessToken = UserCenterLogic.GetConnectMainToken(); - addLockInfo.IsOtherAccountCtrl = true; - } - addLockInfo.CloudAccountId = curAccountObj.SubAccountDistributedMark; - if (doorLock.DeviceAddr != null) - { - addLockInfo.DoorLockId = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint; - } - addLockInfo.EntryTime = System.DateTime.Now; - addLockInfo.IsFreezeUser = false; - if (hasAccess) - { - addLockInfo.IsTempUnlockAuthority = true; - } - else - { - addLockInfo.IsTempUnlockAuthority = false; - } - var result = await ZigBee.Device.DoorLock.SendDoorLockToServer("DoorLock/AddDoorLock", addLockInfo); - if (result != null) - { - if (result.StateCode == "Success") - { - operateConunt = 0; - } - else - { - Application.RunOnMainThread(() => - { - if (hasAccess) - { - new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GiveAccessToSubaccountFailed), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance); - } - else - { - new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CancelAccessToSubaccountFailed), 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); - }); - } - } + new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CloudServerResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance); + }); + } + } - } - catch { } - finally + } + catch { } + finally + { + if (operateConunt == successConunt) + { + if (hasAccess) + { + doorLock.HasRemoteUnlockAccess[curAccountObj.SubAccountDistributedMark] = true; + } + else + { + doorLock.HasRemoteUnlockAccess[curAccountObj.SubAccountDistributedMark] = false; + } + doorLock.ReSave(); + } + Application.RunOnMainThread(() => { - if (operateConunt == successConunt) - { - if (hasAccess) - { - doorLock.HasRemoteUnlockAccess[curAccountObj.SubAccountDistributedMark] = true; - } - else - { - doorLock.HasRemoteUnlockAccess[curAccountObj.SubAccountDistributedMark] = false; - } - doorLock.ReSave(); - } - Application.RunOnMainThread(() => - { - MidRefresh(); - CommonPage.Loading.Hide(); - }); - } - }); - }; - } + MidRefresh(); + CommonPage.Loading.Hide(); + }); + } + }); + }; } + } } -- Gitblit v1.8.0