From 31497bb69602433d94c8a28ea01c3ee3c7cc8576 Mon Sep 17 00:00:00 2001
From: 黄学彪 <hxb@hdlchina.com.cn>
Date: 星期四, 24 十月 2019 14:32:30 +0800
Subject: [PATCH] 完全合并了Wjc,Xm 的 代码

---
 ZigbeeApp/Shared/Phone/UserCenter/DoorLock/TemporaryPassword.cs |  594 ++++++++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 420 insertions(+), 174 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/TemporaryPassword.cs b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/TemporaryPassword.cs
index 79b7e9e..b820eb9 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/TemporaryPassword.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/TemporaryPassword.cs
@@ -1,5 +1,6 @@
 锘縰sing System;
-using Java.Sql;
+using System.Linq.Expressions;
+using Newtonsoft.Json.Linq;
 using Shared.Common;
 using ZigBee.Device;
 
@@ -16,6 +17,7 @@
             this.doorLock = doorLock;
             BackgroundColor = Shared.Common.ZigbeeColor.Current.GXCTopViewBackgroundColor;
             ZigBee.Device.ZbGateway.StatusList.Add(this);
+            ReadTempPasswordData();
         }
 
         #region 鈼� 鍙橀噺鐢虫槑__________________________
@@ -23,10 +25,14 @@
         public System.Collections.Generic.List<Button> pawButtonList = new System.Collections.Generic.List<Button> { };//涓存椂瀵嗙爜涓殑6浣嶆暟瀛�
         Button passwordText; //涓存椂瀵嗙爜
         FrameLayout MidTopFrameLayout;
+        Action<string, string> action;//鎺ユ敹閫氱煡
+        Button btnFinifh;
+        DateTime cunVDateTime;
+        DateTime cunIVDateTime;
         #endregion
 
         /// <summary>
-        /// UI鏄剧ず 
+        /// UI鏄剧ず
         /// </summary>
         public void Show()
         {
@@ -34,12 +40,16 @@
 
             EventHandler<MouseEventArgs> eHandlerBack = (sender, e) =>
             {
+                if (doorLock.Gateway != null || doorLock.Gateway.GwResDataAction != null)
+                {
+                    doorLock.Gateway.GwResDataAction -= action;
+                }
                 RemoveFromParent();
             };
             this.btnBack.MouseUpEventHandler += eHandlerBack;
             this.btnBackFrameLayout.MouseUpEventHandler += eHandlerBack;
             this.MidFrameLayout(this);
-
+            #region btnDelFrameLayout
             var btnDelFrameLayout = new FrameLayout
             {
                 X = Application.GetRealWidth(953),
@@ -102,17 +112,16 @@
                 delBackgroundFrameLayout.AddChidren(btnDelText);
 
                 EventHandler<MouseEventArgs> eHandler2 = (sender2, e2) =>
-                {
-                    ZigBee.Device.DoorLock.LocalTempPassword = "";
-                    dialog.Close();
-                };
+                 {
+                     ClearEventHandler(btnDelText, dialog);
+                 };
                 delBackgroundFrameLayout.MouseDownEventHandler += eHandler2;
                 btnDelIcon2.MouseDownEventHandler += eHandler2;
                 btnDelText.MouseDownEventHandler += eHandler2;
             };
             btnDelFrameLayout.MouseDownEventHandler += eHandler;
             btnDelIcon.MouseDownEventHandler += eHandler;
-
+            #endregion 
             MidTopFrameLayout = new FrameLayout()
             {
                 X = Application.GetRealWidth(181),
@@ -208,7 +217,6 @@
                 Width = Application.GetRealWidth(118),
                 X = Application.GetRealWidth(507),
                 Y = Application.GetRealHeight(389),
-                Text = "10:00",
                 TextColor = Shared.Common.ZigbeeColor.Current.XMGray2,
                 TextAlignment = TextAlignment.CenterLeft,
                 TextSize = 14,
@@ -230,96 +238,44 @@
             BottomFrameLayoutContent();
 
             #region 鏁版嵁澶勭悊
-            string hour = "";
-            string minute = "";
-            if (Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateHour < 10)
+            TimeDisplay(validTime, validTimeDate, inValidTime, inValidTimeDate, false);
+            if (Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.IsModify)
             {
-                hour = "0" + Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateHour;
+                btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack;
+                btnFinifh.Enable = true;
             }
             else
             {
-                hour = Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateHour.ToString();
+                btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMUnSelect;
+                btnFinifh.Enable = false;
             }
-            if (Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateMinute < 10)
-            {
-                minute = "0" + Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateMinute;
-            }
-            else
-            {
-                minute = Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateMinute.ToString();
-            }
-            //鏈夋晥鏃堕棿
-            if (Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateHour == 100)
-            {
-                validTime.Text = "00:00";
-            }
-            else
-            {
-                validTime.Text = hour + ":" + minute;
-            }
-
-            if (Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateHour < 10)
-            {
-                hour = "0" + Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateHour;
-            }
-            else
-            {
-                hour = Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateHour.ToString();
-            }
-            if (Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateMinute < 10)
-            {
-                minute = "0" + Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateMinute;
-            }
-            else
-            {
-                minute = Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateMinute.ToString();
-            }
-
-            if (Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateHour == 100)
-            {
-                inValidTime.Text = "00:00";
-            }
-            else
-            {
-                inValidTime.Text = hour + ":" + minute;
-            }
-            validTimeDate.Text = Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateMonth + Language.StringByID(R.MyInternationalizationString.Month) + Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateDay + Language.StringByID(R.MyInternationalizationString.Day);
-            inValidTimeDate.Text = Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateMonth + Language.StringByID(R.MyInternationalizationString.Month) + Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateDay + Language.StringByID(R.MyInternationalizationString.Day);
-
-            if (string.IsNullOrEmpty(ZigBee.Device.DoorLock.LocalTempPassword))
+            if (string.IsNullOrEmpty(doorLock.LocalTempPassword))
             {
                 randomPassword.Text = "- - - - - -";
                 temPasswordVisiable.Visible = false;
                 randomPassword.X = Application.GetRealWidth(215);
                 randomPassword.TextColor = Shared.Common.ZigbeeColor.Current.XMGray4;
+                Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.IsModify = true;
             }
             else
             {
-                randomPassword.Text = ZigBee.Device.DoorLock.LocalTempPassword;
+                randomPassword.Text = doorLock.LocalTempPassword;
                 temPasswordVisiable.Visible = true;
-            }
-            if (Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InTempPasswordVisiable)
-            {
-                randomPassword.SecureTextEntry = false;
-                temPasswordVisiable.IsSelected = true;
-                randomPassword.TextColor = Shared.Common.ZigbeeColor.Current.XMOrange;
-            }
-            else
-            {
-                randomPassword.SecureTextEntry = true;
-                temPasswordVisiable.IsSelected = false;
-                randomPassword.TextColor = Shared.Common.ZigbeeColor.Current.XMGray4;
+
+                if (Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InTempPasswordVisiable)
+                {
+                    randomPassword.SecureTextEntry = false;
+                    temPasswordVisiable.IsSelected = true;
+                    randomPassword.TextColor = Shared.Common.ZigbeeColor.Current.XMOrange;
+                }
+                else
+                {
+                    randomPassword.SecureTextEntry = true;
+                    temPasswordVisiable.IsSelected = false;
+                    randomPassword.TextColor = Shared.Common.ZigbeeColor.Current.XMGray4;
+                }
             }
 
-            topPic.MouseUpEventHandler += (sender, e) =>
-            {
-                randomPassword.Text = Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetTempPassword();
-                ZigBee.Device.DoorLock.LocalTempPassword = randomPassword.Text;
-                temPasswordVisiable.IsSelected = true;
-                temPasswordVisiable.Visible = true;
-                Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InTempPasswordVisiable = true;
-                randomPassword.TextColor = Shared.Common.ZigbeeColor.Current.XMOrange;
-            };
             temPasswordVisiable.MouseUpEventHandler += (sender, e) =>
             {
                 temPasswordVisiable.IsSelected = !temPasswordVisiable.IsSelected;
@@ -338,40 +294,16 @@
             topPic.MouseUpEventHandler += (sender, e) =>
             {
                 randomPassword.Text = Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetTempPassword();
-                ZigBee.Device.DoorLock.LocalTempPassword = randomPassword.Text;
+                doorLock.LocalTempPassword = randomPassword.Text;
+                TimeDisplay(validTime, validTimeDate, inValidTime, inValidTimeDate, true);
+                btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack;//XMUnSelect
+                btnFinifh.Enable = true;
+                Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.IsModify = true;
                 randomPassword.SecureTextEntry = false;
                 temPasswordVisiable.IsSelected = true;
                 Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InTempPasswordVisiable = true;
                 randomPassword.TextColor = Shared.Common.ZigbeeColor.Current.XMOrange;
             };
-
-            EventHandler<MouseEventArgs> handerValidTimeDateSet = (sender, e) =>
-            {
-                var tempPage = new Shared.Phone.UserCenter.DoorLock.TimeSettignPage(doorLock, "ValidTime");
-                Shared.Phone.UserView.HomePage.Instance.AddChidren(tempPage);
-                Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
-                tempPage.Show();
-
-                tempPage.timeSetAction += () =>
-                {
-                    MidFrameLayoutContent();
-                };
-            };
-            validTimeDate.MouseUpEventHandler += handerValidTimeDateSet;
-            validTime.MouseUpEventHandler += handerValidTimeDateSet;
-            EventHandler<MouseEventArgs> handerInValidTimeSet = (sender, e) =>
-            {
-                var tempPage = new Shared.Phone.UserCenter.DoorLock.TimeSettignPage(doorLock, "InValidTime");
-                Shared.Phone.UserView.HomePage.Instance.AddChidren(tempPage);
-                Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
-                tempPage.Show();
-                tempPage.timeSetAction += () =>
-                {
-                    MidFrameLayoutContent();
-                };
-            };
-            inValidTime.MouseUpEventHandler += handerInValidTimeSet;
-            inValidTimeDate.MouseUpEventHandler += handerInValidTimeSet;
             #endregion
         }
         //搴曢儴鐣岄潰鍜屾暟鎹鐞�
@@ -467,27 +399,30 @@
                 int curIndex = i;
                 EventHandler<MouseEventArgs> hander = (sender, e) =>
                 {
-                    if (curIndex == 0)
+                    if (Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.IsModify)
                     {
-                        var tempPage = new Shared.Phone.UserCenter.DoorLock.TimeSettignPage(doorLock, "ValidTime");
-                        Shared.Phone.UserView.HomePage.Instance.AddChidren(tempPage);
-                        Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
-                        tempPage.Show();
-                        tempPage.timeSetAction += () =>
+                        if (curIndex == 0)
                         {
-                            MidFrameLayoutContent();
-                        };
-                    }
-                    if (curIndex == 1)
-                    {
-                        var tempPage = new Shared.Phone.UserCenter.DoorLock.TimeSettignPage(doorLock, "InValidTime");
-                        Shared.Phone.UserView.HomePage.Instance.AddChidren(tempPage);
-                        Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
-                        tempPage.Show();
-                        tempPage.timeSetAction += () =>
+                            var tempPage = new Shared.Phone.UserCenter.DoorLock.TimeSettignPage(doorLock, "ValidTime");
+                            Shared.Phone.UserView.HomePage.Instance.AddChidren(tempPage);
+                            Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
+                            tempPage.Show();
+                            tempPage.timeSetAction += () =>
+                            {
+                                MidFrameLayoutContent();
+                            };
+                        }
+                        if (curIndex == 1)
                         {
-                            MidFrameLayoutContent();
-                        };
+                            var tempPage = new Shared.Phone.UserCenter.DoorLock.TimeSettignPage(doorLock, "InValidTime");
+                            Shared.Phone.UserView.HomePage.Instance.AddChidren(tempPage);
+                            Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
+                            tempPage.Show();
+                            tempPage.timeSetAction += () =>
+                            {
+                                MidFrameLayoutContent();
+                            };
+                        }
                     }
                 };
                 btnValidTime.MouseDownEventHandler += hander;
@@ -496,7 +431,7 @@
                 btnNext.MouseDownEventHandler += hander;
             }
 
-            var btnFinifh = new Button()
+            btnFinifh = new Button()
             {
                 Width = Application.GetRealWidth(907),
                 Height = Application.GetRealHeight(127),
@@ -504,69 +439,380 @@
                 Y = Application.GetRealHeight(760),
                 Radius = (uint)Application.GetRealHeight(120) / 2,
                 TextID = R.MyInternationalizationString.Confrim,
-                BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack,
-                //BackgroundColor = Shared.Common.ZigbeeColor.Current.XMUnSelect,
+                BackgroundColor = Shared.Common.ZigbeeColor.Current.XMUnSelect,
                 TextColor = Shared.Common.ZigbeeColor.Current.XMWhite,
                 TextSize = 16,
+                Enable = false,
             };
             bottomFrameLayout.AddChidren(btnFinifh);
 
             btnFinifh.MouseUpEventHandler += async (sender, e) =>
-             {
-                 FinifhEventHandler(btnFinifh);
-             };
-
+            {
+                FinifhEventHandler(btnFinifh);
+            };
         }
 
         //纭畾浜嬩欢澶勭悊
-        async private void FinifhEventHandler(Button btnFinifh)
+        void FinifhEventHandler(Button btnFinifh)
         {
-            if (ZigBee.Device.DoorLock.LocalTempPassword == "")
+            System.Threading.Tasks.Task.Run(async () =>
             {
-                //璇�"鐐瑰嚮鐢熸垚"涓存椂瀵嗙爜锛�
-                new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.SetTempPasswordTip1), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinifh);
-                return;
+                Application.RunOnMainThread(() => { CommonPage.Loading.Start(""); });
+                try
+                {
+                    if (doorLock.LocalTempPassword == "")
+                    {
+                        //璇�"鐐瑰嚮鐢熸垚"涓存椂瀵嗙爜锛�
+                        Application.RunOnMainThread(() =>
+                        {
+                            new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.SetTempPasswordTip1), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinifh);
+                        });
+                        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 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);
+                    action = (topic, data) =>
+                    {
+                        var gatewayID = topic.Split('/')[0];
+                        var jObjectdata = JObject.Parse(data);
+                        if (jObjectdata == null)
+                        {
+                            return;
+                        }
+                        if (topic == $"{gatewayID}/DoorLock/DoorLockProgrammingEventNotificationCommand")
+                        {
+                            var ProgrammingEventNotificationData = Newtonsoft.Json.JsonConvert.DeserializeObject<ZigBee.Device.DoorLock.DoorLockProgrammingEventNotificationCommand>(jObjectdata["Data"].ToString());
+                            {
+                                doorLock.doorLockProgrammingEventNotificationCommand = ProgrammingEventNotificationData;
+                                var localDoorLockObj = new ZigBee.Device.DoorLock.LocaDoorLockObj() { };
+                                localDoorLockObj.UserID = ProgrammingEventNotificationData.UserID;
+                                localDoorLockObj.UnlockType = ProgrammingEventNotificationData.ProgramEventSoure;
+                                var entryTime = Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetLocalTime(ProgrammingEventNotificationData.ZigbeeLocalTime);
+                                localDoorLockObj.EntryTime = entryTime;
+                                if (!doorLock.localDoorLockUserList.ContainsKey(localDoorLockObj.UserID))
+                                {
+                                    doorLock.localDoorLockUserList.Add(ProgrammingEventNotificationData.UserID, localDoorLockObj);
+                                }
+                                //涓存椂瀵嗙爜鏁版嵁瀛樺偍澶勭悊
+                                if (ProgrammingEventNotificationData.UserID > 245)
+                                {
+                                    var tpObj = new ZigBee.Device.DoorLock.TempPasswordObject();
+                                    tpObj.UserId = ProgrammingEventNotificationData.UserID;
+                                    tpObj.TempPassword = doorLock.LocalTempPassword;
+                                    tpObj.ValidTime = validDateTime;
+                                    tpObj.InValidTime = inValidDateTime;
+                                    doorLock.tempPasswordObject = tpObj;
+                                }
+                            }
+                        }
+                    };
+                    if (doorLock.Gateway != null || doorLock.Gateway.GwResDataAction != null)
+                    {
+                        doorLock.Gateway.GwResDataAction += action;
+                    }
+                    //璁剧疆涓存椂瀵嗙爜鍒伴棬閿�
+                    var addOrModifyResult = await doorLock.TempPasswordAsync(doorLock.LocalTempPassword, validDateTime, inValidDateTime);
+                    if (addOrModifyResult != null && addOrModifyResult.responseData != null && addOrModifyResult.responseData.status == 0)
+                    {
+                        System.Threading.Thread.Sleep(1000);
+                        if (doorLock.tempPasswordObject != null)
+                        {
+                            var addDoorLockTempPasswordData = new ZigBee.Device.DoorLock.AddDoorLockTempPasswordData();
+                            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")
+                            {
+                                Application.RunOnMainThread(() =>
+                                {
+                                    new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.SetFailedXm1), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinish);
+                                });
+                                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
+                        {
+                            Application.RunOnMainThread(() =>
+                            {
+                                new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.SetFailedXm), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinifh);
+                            });
+                            return;
+                        }
+                    }
+                    else
+                    {
+                        Application.RunOnMainThread(() =>
+                        {
+                            new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.SetFailedXm), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinifh);
+                        });
+                        return;
+                    }
+                }
+                catch { }
+                finally
+                {
+                    Application.RunOnMainThread(() =>
+                    {
+                        MidFrameLayoutContent();
+                        CommonPage.Loading.Hide();
+                    });
+                }
+            });
+        }
+
+        //娓呴櫎浜嬩欢澶勭悊
+        async void ClearEventHandler(Button btnDelText = null, Dialog dialog = null)
+        {
+            if (btnDelText == null)
+            {
+                btnDelText = new Button();
             }
-            if (Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateHour == 100)
+            Application.RunOnMainThread(() => { CommonPage.Loading.Start(""); });
+            try
             {
-                //璇疯缃敓鏁堟椂闂达紱
-                new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.SetTempPasswordTip2), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinifh);
-                return;
+                if (doorLock.tempPasswordObject != null)
+                {
+                    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)
+                    {
+                        var delDoorLockTempPasswordData = new ZigBee.Device.DoorLock.DelDoorLockTempPasswordData();
+                        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;
+                        }
+                        else
+                        {
+                            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);
+
+                    }
+                }
             }
-            if (Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateMonth == 0)
+            catch { }
+            finally
             {
-                //璇疯缃敓鏁堟棩鏈燂紱
-                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)
-            {
-                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)
-            {
-                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 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);
-            var result = await doorLock.TempPasswordAsync(ZigBee.Device.DoorLock.LocalTempPassword, validDateTime, inValidDateTime);
-            if (result != null && result.responseData != null && result.responseData.status == 0)
-            {
-                var aa = 0;
-            }
-            else
-            {
-                //澶辫触
+                Application.RunOnMainThread(() =>
+                {
+                    if (dialog != null)
+                    {
+                        dialog.Close();
+                    }
+                    MidFrameLayoutContent();
+                    CommonPage.Loading.Hide();
+                });
             }
         }
 
-        //鐢熸垚闅忔満鏁颁簨浠跺鐞�
-        private void RandomPasswordMouseUpEventHandler(Button randomPassword)
+        //璇诲彇浜戠瀛樺偍鏁版嵁
+        void ReadTempPasswordData()
         {
+            System.Threading.Tasks.Task.Run(async () =>
+            {
+                Application.RunOnMainThread(() => { CommonPage.Loading.Start(""); });
+                try
+                {
+                    var getDoorLockTempPasswordData = new ZigBee.Device.DoorLock.GetDoorLockTempPasswordData();
+                    if (doorLock.DeviceAddr != null)
+                    {
+                        getDoorLockTempPasswordData.LocalDoorLockId = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint;
+                    }
+                    var result = await ZigBee.Device.DoorLock.GetDoorLockTempPasswordFromServer("DoorLock/GetDoorLockPwdPagger", getDoorLockTempPasswordData);
+                    if (result != null && result.PageData != null)
+                    {
+                        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);
+                        }
+                    }
+                }
+                catch { }
+                finally
+                {
+                    Application.RunOnMainThread(() =>
+                    {
+                        MidFrameLayoutContent();
+                        CommonPage.Loading.Hide();
+                    });
+                }
+            });
+        }
 
+        //鏈湴鏃堕棿鏁版嵁澶勭悊
+        void TimeDateData(DateTime validTimeDateTime, DateTime inValidTime, bool isClearLocalTime = false)
+        {
+            if (doorLock.tempPasswordObject != null)
+            {
+                Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateHour = validTimeDateTime.Hour;
+                Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateMinute = validTimeDateTime.Minute;
+                Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateSecond = validTimeDateTime.Second;
+                Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateYear = validTimeDateTime.Year;
+                Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateMonth = validTimeDateTime.Month;
+                Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateDay = validTimeDateTime.Day;
+                Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateHour = inValidTime.Hour;
+                Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateMinute = inValidTime.Minute;
+                Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateSecond = inValidTime.Second;
+                Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateYear = inValidTime.Year;
+                Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateMonth = inValidTime.Month;
+                Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateDay = inValidTime.Day;
+            }
+            if (isClearLocalTime)
+            {
+                Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateHour = 100;
+                Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateMinute = 100;
+                Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateSecond = 0;
+                Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateYear = 0;
+                Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateMonth = 0;
+                Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateDay = 0;
+                Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateHour = 100;
+                Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateMinute = 100;
+                Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateSecond = 0;
+                Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateYear = 0;
+                Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateMonth = 0;
+                Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateDay = 0;
+            }
+        }
+
+        //鏃堕棿鏄剧ず鏁版嵁澶勭悊
+        void TimeDisplay(Button validTime, Button validTimeDate, Button inValidTime, Button inValidTimeDate, bool isDefaultTime)
+        {
+            string hour = "";
+            string minute = "";
+            if (isDefaultTime)
+            {
+                var cur = DateTime.Now;
+                Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateHour = cur.Hour;
+                Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateHour = cur.Hour;
+                Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateMinute = cur.Minute;
+                Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateMinute = cur.Minute;
+                Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateSecond = cur.Second;
+                Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateSecond = cur.Second;
+                Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateYear = cur.Year;
+                Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateYear = cur.Year;
+                Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateMonth = cur.Month;
+                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;
+            }
+            if (Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateHour < 10)
+            {
+                hour = "0" + Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateHour;
+            }
+            else
+            {
+                hour = Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateHour.ToString();
+            }
+            if (Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateMinute < 10)
+            {
+                minute = "0" + Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateMinute;
+            }
+            else
+            {
+                minute = Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateMinute.ToString();
+            }
+            //鏈夋晥鏃堕棿
+            if (Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateHour == 100)
+            {
+                validTime.Text = "00:00";
+            }
+            else
+            {
+                validTime.Text = hour + ":" + minute;
+            }
+
+            if (Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateHour < 10)
+            {
+                hour = "0" + Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateHour;
+            }
+            else
+            {
+                hour = Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateHour.ToString();
+            }
+            if (Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateMinute < 10)
+            {
+                minute = "0" + Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateMinute;
+            }
+            else
+            {
+                minute = Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateMinute.ToString();
+            }
+
+            if (Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateHour == 100)
+            {
+                inValidTime.Text = "00:00";
+            }
+            else
+            {
+                inValidTime.Text = hour + ":" + minute;
+            }
+            validTimeDate.Text = Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateMonth + Language.StringByID(R.MyInternationalizationString.Month) + Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateDay + Language.StringByID(R.MyInternationalizationString.Day);
+            inValidTimeDate.Text = Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateMonth + Language.StringByID(R.MyInternationalizationString.Month) + Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateDay + Language.StringByID(R.MyInternationalizationString.Day);
         }
 
         #region 鈼� 鎺ュ彛瀹炵幇__________________________

--
Gitblit v1.8.0