From 66a9965c44ecc32a6696abca876ab9d1cd091584 Mon Sep 17 00:00:00 2001 From: gxc <guoxuecheng@guoxuechengdeMacBook-Pro.local> Date: 星期五, 28 二月 2020 15:25:13 +0800 Subject: [PATCH] 2020.2.28 --- ZigbeeApp/Shared/Phone/UserCenter/DoorLock/TemporaryPassword.cs | 738 +++++++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 545 insertions(+), 193 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/TemporaryPassword.cs b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/TemporaryPassword.cs index 79b7e9e..ee6f735 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; @@ -23,26 +24,35 @@ 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鏄剧ず + /// <summary> + /// UI鏄剧ず /// </summary> public void Show() { + ReadTempPasswordData(); this.TopFrameLayout(this, Language.StringByID(R.MyInternationalizationString.TemporaryPassword)); 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), + X = Application.GetRealWidth(953 - 116), Height = Application.GetRealHeight(69), Width = Application.GetRealWidth(1080 - 953), }; @@ -97,14 +107,22 @@ TextAlignment = TextAlignment.CenterLeft, Text = Language.StringByID(R.MyInternationalizationString.ClearTempPassword), TextColor = Shared.Common.ZigbeeColor.Current.XMTopTitleText, - TextSize = 12, + TextSize = 14, + IsBold = true, }; delBackgroundFrameLayout.AddChidren(btnDelText); EventHandler<MouseEventArgs> eHandler2 = (sender2, e2) => { - ZigBee.Device.DoorLock.LocalTempPassword = ""; dialog.Close(); + string msg = Language.StringByID(R.MyInternationalizationString.SureToDeleteTempPassword); + var alert = new Shared.Phone.UserCenter.ShowMsgControl(ShowMsgType.Confirm, msg, Language.StringByID(R.MyInternationalizationString.DoorlockConfirm)); + alert.Show(); + //浣跨敤纭鍨嬪脊妗嗘椂,鐨勫洖璋冨嚱鏁� + alert.ConfirmClickEvent += () => + { + ClearEventHandler(btnDelText); + }; }; delBackgroundFrameLayout.MouseDownEventHandler += eHandler2; btnDelIcon2.MouseDownEventHandler += eHandler2; @@ -112,7 +130,7 @@ }; btnDelFrameLayout.MouseDownEventHandler += eHandler; btnDelIcon.MouseDownEventHandler += eHandler; - + #endregion MidTopFrameLayout = new FrameLayout() { X = Application.GetRealWidth(181), @@ -150,18 +168,18 @@ Y = Application.GetRealHeight(48), TextAlignment = TextAlignment.Center, Text = Language.StringByID(R.MyInternationalizationString.ClickGenerate), - TextColor = Shared.Common.ZigbeeColor.Current.XMTopTitleText, + TextColor = Shared.Common.ZigbeeColor.Current.XMBlack, TextSize = 12, + Visible = true, + Enable = true, }; topMidTopFrameLayout.AddChidren(topPic); var randomPassword = new EditText() { - X = Application.GetRealWidth(233), Y = Application.GetRealHeight(153), Height = Application.GetRealHeight(84), - Width = Application.GetRealWidth(251), - TextAlignment = TextAlignment.CenterRight, + TextAlignment = TextAlignment.Center, TextSize = 24, SecureTextEntry = false, Enable = false, @@ -182,144 +200,94 @@ var validTime = new Button() { Height = Application.GetRealHeight(55), - Width = Application.GetRealWidth(115), - X = Application.GetRealWidth(92), + Width = Application.GetRealWidth(92 + 115), Y = Application.GetRealHeight(386), TextColor = Shared.Common.ZigbeeColor.Current.XMGray2, - TextAlignment = TextAlignment.CenterLeft, - TextSize = 14, + TextAlignment = TextAlignment.CenterRight, + TextSize = 16, }; MidTopFrameLayout.AddChidren(validTime); var validTimeDate = new Button() { Height = Application.GetRealHeight(49), - Width = Application.GetRealWidth(135), - X = Application.GetRealWidth(84), + Width = Application.GetRealWidth(84 + 135), Y = Application.GetRealHeight(441), - TextColor = Shared.Common.ZigbeeColor.Current.XMGray2, - TextSize = 10, + TextColor = Shared.Common.ZigbeeColor.Current.XMGray3, + TextSize = 12, + TextAlignment = TextAlignment.CenterRight, }; MidTopFrameLayout.AddChidren(validTimeDate); var inValidTime = new Button() { Height = Application.GetRealHeight(55), - Width = Application.GetRealWidth(118), + Width = Application.GetRealWidth(717 - 507), X = Application.GetRealWidth(507), Y = Application.GetRealHeight(389), - Text = "10:00", TextColor = Shared.Common.ZigbeeColor.Current.XMGray2, TextAlignment = TextAlignment.CenterLeft, - TextSize = 14, + TextSize = 16, }; MidTopFrameLayout.AddChidren(inValidTime); var inValidTimeDate = new Button() { Height = Application.GetRealHeight(49), - Width = Application.GetRealWidth(135), + Width = Application.GetRealWidth(717 - 508), X = Application.GetRealWidth(508), Y = Application.GetRealHeight(444), - TextColor = Shared.Common.ZigbeeColor.Current.XMGray2, + TextColor = Shared.Common.ZigbeeColor.Current.XMGray3, TextAlignment = TextAlignment.CenterLeft, - TextSize = 10, + TextSize = 12, }; MidTopFrameLayout.AddChidren(inValidTimeDate); 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; + topPic.Visible = true; + topPic.Enable = true; } else { - hour = Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateHour.ToString(); + btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMUnSelect; + btnFinifh.Enable = false; + topPic.Visible = false; + topPic.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; + topPic.Visible = true; + topPic.Enable = 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 +306,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 } //搴曢儴鐣岄潰鍜屾暟鎹鐞� @@ -384,6 +328,7 @@ BackgroundColor = ZigbeeColor.Current.XMWhite, }; this.midFrameLayout.AddChidren(bottomFrameLayout); + bottomFrameLayout.SetCornerWithSameRadius(Application.GetRealHeight(58), HDLUtils.RectCornerTopLeft | HDLUtils.RectCornerTopRight); var informationEdit = new Button() { @@ -436,7 +381,7 @@ { Width = Application.GetRealWidth(58), Height = Application.GetRealHeight(58), - UnSelectedImagePath = "Item/Next.png", + UnSelectedImagePath = "Item/RightNext.png", SelectedImagePath = "Item/Down.png", }; btnNextFrameLayout.AddChidren(btnNext); @@ -467,27 +412,48 @@ 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 += () => + if (string.IsNullOrEmpty(doorLock.LocalTempPassword)) + { + //璇�"鐐瑰嚮鐢熸垚"涓存椂瀵嗙爜锛� + Application.RunOnMainThread(() => + { + new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.SetTempPasswordTip1), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinifh); + }); + return; + } + 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(); - }; + if (string.IsNullOrEmpty(doorLock.LocalTempPassword)) + { + //璇�"鐐瑰嚮鐢熸垚"涓存椂瀵嗙爜锛� + Application.RunOnMainThread(() => + { + new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.SetTempPasswordTip1), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinifh); + }); + return; + } + 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 +462,30 @@ btnNext.MouseDownEventHandler += hander; } - var btnFinifh = new Button() + var modifyTempPasswordTip1 = new Button() + { + Height = Application.GetRealHeight(49), + Y = Application.GetRealHeight(628), + TextID = R.MyInternationalizationString.ModifyTempPasswordTip1, + TextColor = Shared.Common.ZigbeeColor.Current.XMGray3, + TextSize = 12, + TextAlignment = TextAlignment.Center, + }; + bottomFrameLayout.AddChidren(modifyTempPasswordTip1); + + var modifyTempPasswordTip2 = new Button() + { + Height = Application.GetRealHeight(49), + Y = modifyTempPasswordTip1.Bottom, + Radius = (uint)Application.GetRealHeight(120) / 2, + TextID = R.MyInternationalizationString.ModifyTempPasswordTip2, + TextColor = Shared.Common.ZigbeeColor.Current.XMGray3, + TextSize = 12, + TextAlignment = TextAlignment.Center, + }; + bottomFrameLayout.AddChidren(modifyTempPasswordTip2); + + btnFinifh = new Button() { Width = Application.GetRealWidth(907), Height = Application.GetRealHeight(127), @@ -504,69 +493,432 @@ 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, + IsBold = true, + 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 (string.IsNullOrEmpty(doorLock.LocalTempPassword)) + { + //璇�"鐐瑰嚮鐢熸垚"涓存椂瀵嗙爜锛� + Application.RunOnMainThread(() => + { + new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.SetTempPasswordTip1), 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 - 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]; + 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) + { + if (addOrModifyResult.responseData.status == 0) + { + System.Threading.Thread.Sleep(1000); + if (doorLock.tempPasswordObject != null) + { + 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); + } + 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; + } + } + else + { + Application.RunOnMainThread(() => + { + new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinifh); + }); + return; + } + } + catch (Exception ex) + { + var mess = ex.Message; + } + finally + { + Application.RunOnMainThread(() => + { + MidFrameLayoutContent(); + CommonPage.Loading.Hide(); + }); + } + }); + } + + //娓呴櫎浜嬩欢澶勭悊 + async void ClearEventHandler(Button btnDelText = 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) + { + if (resultData.defaultControlResponseData.status == 0) + { + 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 + { + 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.GwResponseOvertime), 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(() => + { + + 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 (UserCenterResourse.UserInfo.AuthorityNo != 1) + { + getDoorLockTempPasswordData.LoginAccessToken = UserCenterLogic.GetConnectMainToken(); + getDoorLockTempPasswordData.IsOtherAccountCtrl = true; + } + if (doorLock.DeviceAddr != null) + { + getDoorLockTempPasswordData.LocalDoorLockId = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint; + } + var result = await ZigBee.Device.DoorLock.GetDoorLockTempPasswordFromServer("DoorLock/GetDoorLockPwdPagger", getDoorLockTempPasswordData); + if (result != null) + { + if (result.PageData.Count != 0) + { + 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.None, CloseTime = 1 }.Show(Common.CommonPage.Instance); + } + } + 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; + //doorLock.ReSave(); + } + 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