From 8b9ce384b26c414db32f98e94e088f5334869c2d Mon Sep 17 00:00:00 2001
From: 黄学彪 <hxb@hdlchina.com.cn>
Date: 星期三, 13 十一月 2019 15:36:28 +0800
Subject: [PATCH] 全部合并了代码,安卓和 IOS 都测试通过了

---
 ZigbeeApp/Shared/Phone/UserCenter/DoorLock/TemporaryPassword.cs |  221 +++++++++++++++++++++++++++++++-----------------------
 1 files changed, 127 insertions(+), 94 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/TemporaryPassword.cs b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/TemporaryPassword.cs
index b6001cf..b392c11 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/TemporaryPassword.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/TemporaryPassword.cs
@@ -17,7 +17,6 @@
             this.doorLock = doorLock;
             BackgroundColor = Shared.Common.ZigbeeColor.Current.GXCTopViewBackgroundColor;
             ZigBee.Device.ZbGateway.StatusList.Add(this);
-            ReadTempPasswordData();
         }
 
         #region 鈼� 鍙橀噺鐢虫槑__________________________
@@ -36,6 +35,7 @@
         /// </summary>
         public void Show()
         {
+            ReadTempPasswordData();
             this.TopFrameLayout(this, Language.StringByID(R.MyInternationalizationString.TemporaryPassword));
 
             EventHandler<MouseEventArgs> eHandlerBack = (sender, e) =>
@@ -52,7 +52,7 @@
             #region btnDelFrameLayout
             var btnDelFrameLayout = new FrameLayout
             {
-                X = Application.GetRealWidth(953),
+                X = Application.GetRealWidth(953 - 116),
                 Height = Application.GetRealHeight(69),
                 Width = Application.GetRealWidth(1080 - 953),
             };
@@ -291,8 +291,6 @@
             {
                 randomPassword.Text = doorLock.LocalTempPassword;
                 temPasswordVisiable.Visible = true;
-                // topPic.Visible = false;
-                // topPic.Enable = false;
                 if (Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InTempPasswordVisiable)
                 {
                     randomPassword.SecureTextEntry = false;
@@ -514,7 +512,7 @@
                 Application.RunOnMainThread(() => { CommonPage.Loading.Start(""); });
                 try
                 {
-                    if (doorLock.LocalTempPassword == "")
+                    if (string.IsNullOrEmpty(doorLock.LocalTempPassword))
                     {
                         //璇�"鐐瑰嚮鐢熸垚"涓存椂瀵嗙爜锛�
                         Application.RunOnMainThread(() =>
@@ -523,44 +521,23 @@
                         });
                         return;
                     }
-                    //if (Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateHour == 100)
-                    //{
-                    //    //璇疯缃敓鏁堟椂闂达紱
-                    //    Application.RunOnMainThread(() =>
-                    //    {
-                    //        new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.SetTempPasswordTip2), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinifh);
-                    //    });
-                    //    return;
-                    //}
-                    //if (Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateMonth == 0)
-                    //{
-                    //    //璇疯缃敓鏁堟棩鏈燂紱
-                    //    Application.RunOnMainThread(() =>
-                    //    {
-                    //        new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.SetTempPasswordTip3), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinifh);
-                    //    });
-                    //    return;
-                    //}
-                    //if (Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateHour == 100)
-                    //{
-                    //    Application.RunOnMainThread(() =>
-                    //    {
-                    //        new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.SetTempPasswordTip4), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinifh);
-                    //    });
-                    //    return;
-                    //}
-                    //if (Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateMonth == 0)
-                    //{
-                    //    Application.RunOnMainThread(() =>
-                    //    {
-                    //        new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.SetTempPasswordTip5), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinifh);
-                    //    });
-                    //    return;
-                    //}
 
                     var dNow = DateTime.Now;
-                    var validDateTime = new DateTime(dNow.Year, Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateMonth, Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateDay, Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateHour, Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateMinute, dNow.Second);
+                    var validDateTime = new DateTime(dNow.Year, Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateMonth, Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateDay, Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateHour, Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateMinute - 1, dNow.Second);
                     var inValidDateTime = new DateTime(dNow.Year, Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateMonth, Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateDay, Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateHour, Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateMinute, dNow.Second);
+                    if (DateTime.Compare(inValidDateTime, validDateTime) < 0)
+                    {
+                        //鏃犳晥鐨勬椂闂磋缃�
+                        Application.RunOnMainThread(() =>
+                        {
+                            new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.SetTempPasswordTip), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinifh);
+                        });
+                        return;
+                    }
+
+                    var startTimeStr = Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetUnixTimeStamp(validDateTime);
+                    var endTimeStr = Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetUnixTimeStamp(inValidDateTime);
+
                     action = (topic, data) =>
                     {
                         var gatewayID = topic.Split('/')[0];
@@ -602,40 +579,57 @@
                     }
                     //璁剧疆涓存椂瀵嗙爜鍒伴棬閿�
                     var addOrModifyResult = await doorLock.TempPasswordAsync(doorLock.LocalTempPassword, validDateTime, inValidDateTime);
-                    if (addOrModifyResult != null && addOrModifyResult.responseData != null && addOrModifyResult.responseData.status == 0)
+                    if (addOrModifyResult != null && addOrModifyResult.responseData != null)
                     {
-                        System.Threading.Thread.Sleep(1000);
-                        if (doorLock.tempPasswordObject != null)
+                        if (addOrModifyResult.responseData.status == 0)
                         {
-                            var addDoorLockTempPasswordData = new ZigBee.Device.DoorLock.AddDoorLockTempPasswordData();
-                            if (UserCenterResourse.UserInfo.AuthorityNo != 1)
+                            System.Threading.Thread.Sleep(1000);
+                            if (doorLock.tempPasswordObject != null)
                             {
-                                addDoorLockTempPasswordData.LoginAccessToken = UserCenterLogic.GetConnectMainToken();
-                                addDoorLockTempPasswordData.IsOtherAccountCtrl = true;
+                                var addDoorLockTempPasswordData = new ZigBee.Device.DoorLock.AddDoorLockTempPasswordData();
+                                if (UserCenterResourse.UserInfo.AuthorityNo != 1)
+                                {
+                                    addDoorLockTempPasswordData.LoginAccessToken = UserCenterLogic.GetConnectMainToken();
+                                    addDoorLockTempPasswordData.IsOtherAccountCtrl = true;
+                                }
+                                addDoorLockTempPasswordData.TempPwd = doorLock.tempPasswordObject.TempPassword;
+                                if (doorLock.DeviceAddr != null)
+                                {
+                                    addDoorLockTempPasswordData.LocalDoorLockId = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint;
+                                }
+                                addDoorLockTempPasswordData.ValidBeginTime = doorLock.tempPasswordObject.ValidTime;
+                                addDoorLockTempPasswordData.ValidEndTime = doorLock.tempPasswordObject.InValidTime;
+                                addDoorLockTempPasswordData.TempPwdId = doorLock.tempPasswordObject.UserId.ToString();
+                                //瀛樺埌浜�
+                                var result1 = await ZigBee.Device.DoorLock.SendDoorLockToServer("DoorLock/AddDoorLockPwd", addDoorLockTempPasswordData);
+                                if (result1 == null)
+                                {
+                                    Application.RunOnMainThread(() =>
+                                    {
+                                        new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CloudServerResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinish);
+                                    });
+                                    return;
+                                }
+                                if (result1.StateCode != "Success")
+                                {
+                                    Application.RunOnMainThread(() =>
+                                    {
+                                        new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.SetFailedXm1), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinish);
+                                    });
+                                    return;
+                                }
+                                Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.IsModify = false;
+                                doorLock.LocalTempPassword = doorLock.tempPasswordObject.TempPassword;
+                                TimeDateData(doorLock.tempPasswordObject.ValidTime, doorLock.tempPasswordObject.InValidTime);
                             }
-                            addDoorLockTempPasswordData.TempPwd = doorLock.tempPasswordObject.TempPassword;
-                            if (doorLock.DeviceAddr != null)
-                            {
-                                addDoorLockTempPasswordData.LocalDoorLockId = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint;
-                            }
-                            addDoorLockTempPasswordData.ValidBeginTime = doorLock.tempPasswordObject.ValidTime;
-                            addDoorLockTempPasswordData.ValidEndTime = doorLock.tempPasswordObject.InValidTime;
-                            addDoorLockTempPasswordData.TempPwdId = doorLock.tempPasswordObject.UserId.ToString();
-                            //瀛樺埌浜�
-                            var result1 = await ZigBee.Device.DoorLock.SendDoorLockToServer("DoorLock/AddDoorLockPwd", addDoorLockTempPasswordData);
-                            if (result1 != null && result1.StateCode != "Success")
+                            else
                             {
                                 Application.RunOnMainThread(() =>
                                 {
-                                    new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.SetFailedXm1), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinish);
+                                    new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.SetFailedXm), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinifh);
                                 });
                                 return;
                             }
-                            //btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMUnSelect;//XMUnSelect  XMBlack
-                            //btnFinifh.Enable = false;
-                            Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.IsModify = false;
-                            doorLock.LocalTempPassword = doorLock.tempPasswordObject.TempPassword;
-                            TimeDateData(doorLock.tempPasswordObject.ValidTime, doorLock.tempPasswordObject.InValidTime);
                         }
                         else
                         {
@@ -650,7 +644,7 @@
                     {
                         Application.RunOnMainThread(() =>
                         {
-                            new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.SetFailedXm), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinifh);
+                            new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinifh);
                         });
                         return;
                     }
@@ -684,35 +678,58 @@
                 {
                     var passData = doorLock.SetUserAccessData(doorLock.tempPasswordObject.UserId, ZigBee.Device.DoorLock.AccessType.DelCurrentUser);
                     var resultData = await doorLock.DefaultControlAsync(passData);
-                    if (resultData != null && resultData.defaultControlResponseData != null && resultData.defaultControlResponseData.status == 0)
+                    if (resultData != null && resultData.defaultControlResponseData != null)
                     {
-                        var delDoorLockTempPasswordData = new ZigBee.Device.DoorLock.DelDoorLockTempPasswordData();
-                        if (UserCenterResourse.UserInfo.AuthorityNo != 1)
+                        if (resultData.defaultControlResponseData.status == 0)
                         {
-                            delDoorLockTempPasswordData.LoginAccessToken = UserCenterLogic.GetConnectMainToken();
-                            delDoorLockTempPasswordData.IsOtherAccountCtrl = true;
-                        }
-                        if (doorLock.DeviceAddr != null)
-                        {
-                            delDoorLockTempPasswordData.LocalDoorLockId = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint;
-                        }
-                        var result1 = await ZigBee.Device.DoorLock.SendDoorLockToServer("DoorLock/DelDoorLockPwd", delDoorLockTempPasswordData);
-                        if (result1 != null && result1 != null && result1.StateCode == "Success")
-                        {
-                            doorLock.tempPasswordObject = null;
-                            doorLock.LocalTempPassword = "";
-                            TimeDateData(DateTime.Now, DateTime.Now, true);
-                            Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InTempPasswordVisiable = false;
-                            Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.IsModify = true;
+                            var delDoorLockTempPasswordData = new ZigBee.Device.DoorLock.DelDoorLockTempPasswordData();
+                            if (UserCenterResourse.UserInfo.AuthorityNo != 1)
+                            {
+                                delDoorLockTempPasswordData.LoginAccessToken = UserCenterLogic.GetConnectMainToken();
+                                delDoorLockTempPasswordData.IsOtherAccountCtrl = true;
+                            }
+                            if (doorLock.DeviceAddr != null)
+                            {
+                                delDoorLockTempPasswordData.LocalDoorLockId = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint;
+                            }
+                            var result1 = await ZigBee.Device.DoorLock.SendDoorLockToServer("DoorLock/DelDoorLockPwd", delDoorLockTempPasswordData);
+                            if (result1 != null)
+                            {
+                                if (result1.StateCode == "Success")
+                                {
+                                    doorLock.tempPasswordObject = null;
+                                    doorLock.LocalTempPassword = "";
+                                    TimeDateData(DateTime.Now, DateTime.Now, true);
+                                    Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InTempPasswordVisiable = false;
+                                    Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.IsModify = true;
+                                }
+                                else
+                                {
+                                    Application.RunOnMainThread(() =>
+                                    {
+                                        new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.ClearFailedXm1) + ".", Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinish);
+                                    });
+                                }
+                            }
+                            else
+                            {
+                                Application.RunOnMainThread(() =>
+                                {
+                                    new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CloudServerResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinish);
+                                });
+                            }
                         }
                         else
                         {
-                            new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.ClearFailedXm1), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinish);
+                            Application.RunOnMainThread(() =>
+                            {
+                                new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.ClearFailedXm1), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinish);
+                            });
                         }
                     }
                     else
                     {
-                        new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.ClearFailedXm), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show(btnDelText);
+                        new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show(btnDelText);
 
                     }
                 }
@@ -751,18 +768,33 @@
                         getDoorLockTempPasswordData.LocalDoorLockId = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint;
                     }
                     var result = await ZigBee.Device.DoorLock.GetDoorLockTempPasswordFromServer("DoorLock/GetDoorLockPwdPagger", getDoorLockTempPasswordData);
-                    if (result != null && result.PageData != null)
+                    if (result != null)
                     {
-                        foreach (var curDoorLockTempPaw in result.PageData)
+                        if (result.PageData.Count != 0)
                         {
-                            var tpObj = new ZigBee.Device.DoorLock.TempPasswordObject();
-                            tpObj.UserId = int.Parse(curDoorLockTempPaw.TempPwdId);
-                            tpObj.ValidTime = curDoorLockTempPaw.ValidBeginTime;
-                            tpObj.InValidTime = curDoorLockTempPaw.ValidEndTime;
-                            doorLock.LocalTempPassword = tpObj.TempPassword = curDoorLockTempPaw.TempPwd;
-                            doorLock.tempPasswordObject = tpObj;
-                            TimeDateData(doorLock.tempPasswordObject.ValidTime, doorLock.tempPasswordObject.InValidTime);
+                            foreach (var curDoorLockTempPaw in result.PageData)
+                            {
+                                var tpObj = new ZigBee.Device.DoorLock.TempPasswordObject();
+                                tpObj.UserId = int.Parse(curDoorLockTempPaw.TempPwdId);
+                                tpObj.ValidTime = curDoorLockTempPaw.ValidBeginTime;
+                                tpObj.InValidTime = curDoorLockTempPaw.ValidEndTime;
+                                doorLock.LocalTempPassword = tpObj.TempPassword = curDoorLockTempPaw.TempPwd;
+                                doorLock.tempPasswordObject = tpObj;
+                                TimeDateData(doorLock.tempPasswordObject.ValidTime, doorLock.tempPasswordObject.InValidTime);
+                            }
                         }
+                        else
+                        {
+                            doorLock.tempPasswordObject = null;
+                            doorLock.LocalTempPassword = "";
+                            TimeDateData(DateTime.Now, DateTime.Now, true);
+                            Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InTempPasswordVisiable = false;
+                            Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.IsModify = true;
+                        }
+                    }
+                    else
+                    {
+                        new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CloudServerResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(this.btnTip);
                     }
                 }
                 catch { }
@@ -832,6 +864,7 @@
                 Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateMonth = cur.Month;
                 Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateDay = cur.Day;
                 Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateDay = cur.Day + 1;
+                //doorLock.ReSave();
             }
             if (Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateHour < 10)
             {

--
Gitblit v1.8.0