黄学彪
2019-10-24 31497bb69602433d94c8a28ea01c3ee3c7cc8576
ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UnLockMethod.cs
@@ -28,82 +28,13 @@
        bool isSecondDel;
        #endregion
        /// <summary>
        ///  获取最新信息
        /// </summary>
        void ReadDoorLockUserInfo()
        {
            System.Threading.Tasks.Task.Run(async () =>
            {
                Application.RunOnMainThread(() => { CommonPage.Loading.Start(""); });
                try
                {
                    //  读取设备中的信息
                    var getDoorLockInfo = await doorLock.GetDoorlockUserInfoAsync();
                    if (getDoorLockInfo != null && getDoorLockInfo.doorLockUserDetailData != null)
                    {
                        var dataList = getDoorLockInfo.doorLockUserDetailData.UserObjList;
                        foreach (var doorData in dataList)
                        {
                            var localDoorLockObj1 = new ZigBee.Device.DoorLock.LocaDoorLockObj()
                            {
                                UserID = doorData.UserId,
                                UnlockType = doorData.UserType
                            };
                            if ((doorLock.localDoorLockUserList.ContainsKey(localDoorLockObj1.UserID)) == false)
                            {
                                doorLock.localDoorLockUserList.Add(localDoorLockObj1.UserID, localDoorLockObj1);
                            }
                        }
                    }
                    //  读取云端门锁设备中的信息
                    var localDoorLockObj = new ZigBee.Device.DoorLock.GetDoorLockData() { };
                    localDoorLockObj.CloudAccountId = curAccountObj.SubAccountDistributedMark;
                    if (doorLock.DeviceAddr != null)
                    {
                        localDoorLockObj.DoorLockId = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint;
                    }
                    var getDoorLockInfoList = await ZigBee.Device.DoorLock.GetDoorLockInfoFromServer("App/GetDoorLockPager", localDoorLockObj);
                    if (getDoorLockInfoList != null)
                    {
                        foreach (var curDoorLockUser in getDoorLockInfoList.PageData)
                        {
                            if (doorLock.localDoorLockUserList.ContainsKey(int.Parse(curDoorLockUser.DoorLockLocalUserId)))
                            {
                                doorLock.localDoorLockUserList.Remove(int.Parse(curDoorLockUser.DoorLockLocalUserId));
                            }
                            var doorLockObj = new ZigBee.Device.DoorLock.LocaDoorLockObj() { };
                            doorLockObj.UserID = int.Parse(curDoorLockUser.DoorLockLocalUserId);
                            doorLockObj.UnlockType = curDoorLockUser.OpenLockMode;
                            doorLockObj.PrimaryId = curDoorLockUser.Id;
                            doorLockObj.EntryTime = curDoorLockUser.EntryTime;
                            doorLockObj.UserName = curDoorLockUser.UserIdRemarks;
                            doorLockObj.ConnectedAccount = curDoorLockUser.CloudAccountId;
                            doorLock.localDoorLockUserList.Add(int.Parse(curDoorLockUser.DoorLockLocalUserId), doorLockObj);
                        }
                    }
                }
                catch { }
                finally
                {
                    Application.RunOnMainThread(() =>
                    {
                        RefreshList();
                        CommonPage.Loading.Hide();
                    });
                }
            });
        }
        /// <summary>
        /// UI显示 
        /// </summary>
        public void Show()
        {
            ReadDoorLockUserInfo();
            //ReadDoorLockUserInfo();
            this.TopFrameLayout(this, Language.StringByID(R.MyInternationalizationString.LockMethod));
            this.btnTitleLine.Visible = false;
            EventHandler<MouseEventArgs> eHandlerBack = (sender, e) =>
@@ -328,7 +259,7 @@
                    Height = Application.GetRealHeight(49),
                    X = Application.GetRealWidth(173),
                    Y = Application.GetRealHeight(95),
                    Text = Language.StringByID(R.MyInternationalizationString.Delete),
                    Text = Language.StringByID(R.MyInternationalizationString.DelBindDevice),
                    TextColor = Shared.Common.ZigbeeColor.Current.XMWhite,
                    TextSize = 12,
                    TextAlignment = TextAlignment.Center,
@@ -392,8 +323,8 @@
                     refreshDoorLockData.DoorLockLocalUserId = curDoorLockUser.UserID.ToString();
                     refreshDoorLockData.PrimaryId = curDoorLockUser.PrimaryId;
                     refreshDoorLockData.UserIdRemarks = btnDoorlockUser.Text;
                     var result = await ZigBee.Device.DoorLock.SendDoorLockToServer("App/UpdateDoorLock", refreshDoorLockData);
                     if (result.StateCode == "Success")
                     var result = await ZigBee.Device.DoorLock.SendDoorLockToServer("DoorLock/UpdateDoorLock", refreshDoorLockData);
                     if (result != null && result.StateCode == "Success")
                     {
                         if (doorLock.localDoorLockUserList.ContainsKey(curDoorLockUser.UserID))
                         {
@@ -428,7 +359,7 @@
                            var resultData = await doorLock.DefaultControlAsync(passData);
                            if (resultData != null && resultData.defaultControlResponseData != null)
                            {
                                if (resultData.defaultControlResponseData.status == 0)
                                if (resultData.defaultControlResponseData.status == 0 || resultData.defaultControlResponseData.status == 2)
                                {
                                    var deleteDoorLockData = new ZigBee.Device.DoorLock.DeleteDoorLockData();
                                    if (doorLock.DeviceAddr != null)
@@ -438,8 +369,8 @@
                                    deleteDoorLockData.DoorLockLocalUserId = curDoorLockUser.UserID.ToString();
                                    deleteDoorLockData.PrimaryId = curDoorLockUser.PrimaryId;
                                    deleteDoorLockData.DelDoorLockDelType = 2;
                                    var result = await ZigBee.Device.DoorLock.SendDoorLockToServer("App/DelDoorLock", deleteDoorLockData);
                                    if (result.StateCode == "Success")
                                    var result = await ZigBee.Device.DoorLock.SendDoorLockToServer("DoorLock/DelDoorLock", deleteDoorLockData);
                                    if (result != null && result.StateCode == "Success")
                                    {
                                        isSecondDel = false;
                                        if (doorLock.localDoorLockUserList.ContainsKey(curDoorLockUser.UserID))
@@ -469,8 +400,8 @@
                                        deleteDoorLockData.DoorLockLocalUserId = curDoorLockUser.UserID.ToString();
                                        deleteDoorLockData.PrimaryId = curDoorLockUser.PrimaryId;
                                        deleteDoorLockData.DelDoorLockDelType = 2;
                                        var result = await ZigBee.Device.DoorLock.SendDoorLockToServer("App/DelDoorLock", deleteDoorLockData);
                                        if (result.StateCode == "Success")
                                        var result = await ZigBee.Device.DoorLock.SendDoorLockToServer("DoorLock/DelDoorLock", deleteDoorLockData);
                                        if (result != null && result.StateCode == "Success")
                                        {
                                            isSecondDel = false;
                                            if (doorLock.localDoorLockUserList.ContainsKey(curDoorLockUser.UserID))
@@ -771,7 +702,7 @@
                    Height = Application.GetRealHeight(49),
                    X = Application.GetRealWidth(173),
                    Y = Application.GetRealHeight(95),
                    Text = Language.StringByID(R.MyInternationalizationString.Delete),
                    Text = Language.StringByID(R.MyInternationalizationString.DelBindDevice),
                    TextColor = Shared.Common.ZigbeeColor.Current.XMWhite,
                    TextSize = 12,
                    TextAlignment = TextAlignment.Center,
@@ -835,8 +766,8 @@
                    refreshDoorLockData.DoorLockLocalUserId = curDoorLockUser.UserID.ToString();
                    refreshDoorLockData.PrimaryId = curDoorLockUser.PrimaryId;
                    refreshDoorLockData.UserIdRemarks = btnDoorlockUser.Text;
                    var result = await ZigBee.Device.DoorLock.SendDoorLockToServer("App/UpdateDoorLock", refreshDoorLockData);
                    if (result.StateCode == "Success")
                    var result = await ZigBee.Device.DoorLock.SendDoorLockToServer("DoorLock/UpdateDoorLock", refreshDoorLockData);
                    if (result != null && result.StateCode == "Success")
                    {
                        if (doorLock.localDoorLockUserList.ContainsKey(curDoorLockUser.UserID))
                        {
@@ -881,8 +812,8 @@
                                    deleteDoorLockData.DoorLockLocalUserId = curDoorLockUser.UserID.ToString();
                                    deleteDoorLockData.PrimaryId = curDoorLockUser.PrimaryId;
                                    deleteDoorLockData.DelDoorLockDelType = 2;
                                    var result = await ZigBee.Device.DoorLock.SendDoorLockToServer("App/DelDoorLock", deleteDoorLockData);
                                    if (result.StateCode == "Success")
                                    var result = await ZigBee.Device.DoorLock.SendDoorLockToServer("DoorLock/DelDoorLock", deleteDoorLockData);
                                    if (result != null && result.StateCode == "Success")
                                    {
                                        if (doorLock.localDoorLockUserList.ContainsKey(curDoorLockUser.UserID))
                                        {