黄学彪
2019-12-30 3dcbd186c42c598c0c08d1cd37034cf2baa09e54
ZigbeeApp/Shared/Phone/UserCenter/DoorLock/MemberFrozenPage.cs
@@ -33,6 +33,24 @@
                    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
@@ -148,8 +166,7 @@
                    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;
@@ -172,7 +189,7 @@
                        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;
@@ -247,16 +264,34 @@
            }
        }
        //冻结账户
        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 () =>
                     {
@@ -273,98 +308,12 @@
                                 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
                                     {
@@ -374,7 +323,6 @@
                                             tempUserIdList = new List<int>();
                                         }
                                         tempUserIdList.Add(int.Parse(curDoorLockUser.DoorLockLocalUserId));
                                         tempUserObjList.Add(curDoorLockUser);
                                     }
                                 }
                                 tempGroupId.Add(tempUserIdList);
@@ -392,6 +340,7 @@
                                 int count1 = tempGroupId.Count;
                                 int count2 = 0;
                            int tempCount = 0;
                                 for (int i = 0; i < tempGroupId.Count; i++)
                                 {
                                     var tempUserIdList1 = tempGroupId[i];
@@ -411,8 +360,10 @@
                                         {
                                             count2++;
                                         }
                                         System.Threading.Thread.Sleep(3000);
                                    //if (tempCount == tempGroupId.Count - 1)
                                    //{
                                    System.Threading.Thread.Sleep(1000);
                                    //}
                                     }
                                     else
                                     {
@@ -422,12 +373,13 @@
                                         });
                                         return;
                                     }
                                tempCount++;
                                 }
                                 // 批量冻结门锁中的账户后,准备冻结云端账户
                                 if (count2 == count1)
                                 {
                                     foreach (var curDoorLockUser in tempUserObjList)
                                foreach (var curDoorLockUser in curAccountDoorLockUserList)
                                     {
                                         if (isFreeze)
                                         {
@@ -535,7 +487,6 @@
                                         {
                                             new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.UnFreezeFailed) + ".", Direction = AMPopTipDirection.None, CloseTime = 2 }.Show(Common.CommonPage.Instance);
                                         }
                                         return;
                                     });
                                 }
                             }
@@ -619,23 +570,29 @@
                             });
                         }
                     });
                 }
                 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 () =>
                    {
@@ -821,11 +778,7 @@
                            });
                        }
                    });
                }
                else
                {
                    MidRefresh();
                }
                dialog.Close();
            };
        }