From 98ceb6bd2021f9ff136cda27eef28676dd7b5d92 Mon Sep 17 00:00:00 2001
From: 黄学彪 <hxb@hdlchina.com.cn>
Date: 星期四, 21 五月 2020 13:24:02 +0800
Subject: [PATCH] 最后的版本

---
 ZigbeeApp/Shared/Phone/Device/Logic/SoneLogicList.cs |  224 +++++++++++++++++++++++++++++--------------------------
 1 files changed, 119 insertions(+), 105 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/SoneLogicList.cs b/ZigbeeApp/Shared/Phone/Device/Logic/SoneLogicList.cs
index cbe8716..ca7438c 100755
--- a/ZigbeeApp/Shared/Phone/Device/Logic/SoneLogicList.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Logic/SoneLogicList.cs
@@ -38,7 +38,7 @@
         /// <summary>
         /// 鏃堕棿鎴�
         /// </summary>
-        public int timeLong = 0;
+        public long timeLong = 0;
         public async void Show()
         {
 
@@ -80,14 +80,8 @@
                     {
                         //杩涙潵鏇存柊涓�娆″��
                         logicId = logic.LogicId;
-                        timeValue = int.Parse(logic.Conditions[0]["DoorLockOpenDelayTime"]);
-                        if (UserCenter.UserCenterResourse.HideOption.DoorLockNomallyOpenTimeMode == 1)
-                        {
-                            //寮哄埗鍙樻洿鏃堕棿妯″紡涓哄垎閽�
-                            timeValue = timeValue / 60;
-                        }
-                    
-                        timeLong = int.Parse(logic.Conditions[0]["TriggerTime"]);
+                        timeValue = int.Parse(logic.Conditions[0]["DoorLockOpenDelayTime"]) / 3600;
+                        timeLong = long.Parse(logic.Conditions[0]["TriggerTime"]);
 
                     }
                     catch { }
@@ -104,6 +98,7 @@
             };
             middle.AddChidren(fLayout);
             #endregion
+
             #region 甯稿紑鑷姩鍖�
             ///绗笁鍧楃涓�绾х埗鎺т欢
             listLogicFl = new FrameLayout
@@ -309,53 +304,59 @@
                     }
                 };
 
-                ///鏄剧ず澶辨晥璁剧疆鏃堕棿鏂囨湰鎺т欢
-                var timeTextBtn = new Button
-                {
-                    Y = Application.GetRealHeight(127 + 69),
-                    X = Application.GetRealWidth(86),//125
-                    Width = Application.GetRealWidth(907),//634 + 200
-                    Height = Application.GetRealHeight(60),
-                    TextSize = 15,
-                    TextColor = ZigbeeColor.Current.LogicTextBlackColor,
-                };
+               
                 if (logicId != 0)
                 {
+                    ///鏄剧ず澶辨晥璁剧疆鏃堕棿鏂囨湰鎺т欢
+                    var timeTextBtn = new Button
+                    {
+                        Y = Application.GetRealHeight(127 + 69),
+                        X = Application.GetRealWidth(80),//125
+                        Width = Application.GetRealWidth(907+12),//634 + 200
+                        Height = Application.GetRealHeight(60),
+                        TextSize = 15,
+                        TextColor = ZigbeeColor.Current.LogicTextBlackColor,
+                    };
                     openModeFl.AddChidren(timeTextBtn);
+
                     string text1 = Language.StringByID(MyInternationalizationString.timeSensitive);
                     string text2 = Language.StringByID(MyInternationalizationString.yearSone);
                     string text3 = Language.StringByID(MyInternationalizationString.monthSone);
                     string text4 = Language.StringByID(MyInternationalizationString.numberSone);
                     string text5 = Language.StringByID(MyInternationalizationString.hour1);
                     string text6 = Language.StringByID(MyInternationalizationString.executeSone);
+                    string year = "";
+                    string month = "";
+                    int days = 0;
+                    int hour = 0;
+                    int minute = 0;
+
                     if (_if)
                     {
-
                         ///绗竴娆¤繘鏉ヨ鍙栫綉鍏虫椂闂达紱
                         var datetime = GetLocalTime(timeLong);
                         ///鏈夋椂鏁堟�у父寮�鎵嶆樉绀烘椂闂存潯浠舵枃鏈�
-                        var y = datetime.Year.ToString();//閭d竴骞�
-                        var m = datetime.Month.ToString();//閭d竴鏈�
-                        var d = datetime.ToString("dd");//閭d竴澶�
-                        var h = int.Parse(datetime.ToString("HH"));//灏忔椂                   
-                        int minute = datetime.Minute;//鍒嗛挓
-                        timeTextBtn.Text = text1 + y + text2 + m + text3 + d + text4 + h + text5 + minute.ToString() + text6;
-
+                        year = datetime.Year.ToString();//閭d竴骞�
+                        month = datetime.Month.ToString();//閭d竴鏈�
+                        days = int.Parse(datetime.ToString("dd"));//閭d竴澶�
+                        hour = int.Parse(datetime.ToString("HH"));//灏忔椂                   
+                        minute = datetime.Minute;//鍒嗛挓
                     }
                     else
                     {
 
-                        ///鏈夋椂鏁堟�у父寮�鎵嶆樉绀烘椂闂存潯浠舵枃鏈�
-                        var y = DateTime.Now.Year.ToString();//閭d竴骞�
-                        var m = DateTime.Now.Month.ToString();//閭d竴鏈�
+
+                        ///鍦ㄥ綋鍓嶇晫闈㈢紪杈戞樉绀虹郴缁熸椂闂�(涓嶈兘姣忎竴娆$紪杈戦兘鍘荤綉鍏虫嬁鏁版嵁)
+                        year = DateTime.Now.Year.ToString();//閭d竴骞�
+                        month = DateTime.Now.Month.ToString();//閭d竴鏈�
                         var d = DateTime.Now.ToString("dd");//閭d竴澶�
                         var h = int.Parse(DateTime.Now.ToString("HH"));//灏忔椂
-                        int dayInt = (h + timeValue) / 24;//绠楀嚭鍑犲ぉ鍚庢墽琛�
-                        int hour = (h + timeValue) % 24;//绠楀嚭鍑犲ぉ鍚庨偅涓椂闂存墽琛�
-                        int days = int.Parse(d) + dayInt;
-                        int minute = DateTime.Now.Minute;//鍒嗛挓
-                        timeTextBtn.Text = text1 + y + text2 + m + text3 + days.ToString() + text4 + hour.ToString() + text5 + minute.ToString() + text6;
+                        int dayInt = (h + timeValue) / 24;//璁剧疆鏃堕棿+褰撳墠绯荤粺鏃堕棿鏄惁瓒呭嚭24灏忔椂
+                        hour = (h + timeValue) % 24;//璁剧疆鏃堕棿+褰撳墠绯荤粺鏃堕棿鏄惁瓒呭嚭24灏忔椂鍓╀笅澶氬皯灏忔椂
+                        days = int.Parse(d) + dayInt;//褰撳墠绯荤粺澶╂暟+鎵ц鍚庡ぉ鏁�
+                        minute = DateTime.Now.Minute;//鍒嗛挓
                     }
+                    timeTextBtn.Text = text1 + year + text2 + month + text3 + days.ToString() + text4 + hour.ToString() + text5 + minute.ToString() + text6;
                 }
 
 
@@ -410,66 +411,66 @@
                 };
                 modeFl.AddChidren(clickBtn);
                 clickBtn.MouseUpEventHandler += (sender, e) =>
-                 {
+                {
 
-                     LogicView.TipView.ShowConfrimTip(() =>
-                     {///鍐嶆纭
-                         LogicView.TipView.ShowInputTip(true, async (str) =>
-                          {///纭鍙戦�佸懡浠�
-                              CommonPage.Loading.Start();
-                              try
-                              {
-                                  ///xm
-                                  var result = await UserCenter.DoorLock.DoorLockCommonInfo.SetNormallyOpenModeFuncAsync(Send.CurrentDoorLock);
-                                  if (!result)
-                                  {
-                                      LogicView.TipView.ShowFlashTip(Language.StringByID(MyInternationalizationString.openFailed));
-                                      return;
-                                  }
-                                  else
-                                  {
-                                      ///鍥犱负鏈夊父寮�妯″紡涓嬫墠鍙互鍒涘缓澶辨晥閫昏緫锛�
-                                      SkipView.GetLogicAll(Send.CurrentDoorLock);//鍒犻櫎涔嬪墠鎵�鏈夊け鏁堥�昏緫
-                                      var addResult = await SkipView.LockAddModifyLogic(int.Parse(str), Send.CurrentDoorLock);//娣诲姞涓�鏉″け鏁堥�昏緫
-                                      if (addResult == 0)
-                                      {
-                                          ///鍙璇村鏋滃父寮�妯″紡寮�锛屽垱寤鸿嚜鍔ㄥ寲澶辫触锛岄偅涔堝皢瑕佸彂涓�鏉″父寮�妯″紡鍏抽棴鍛戒护;
-                                          UserCenter.DoorLock.DoorLockCommonInfo.DelNormallyOpenMode(Send.CurrentDoorLock);
-                                          ///鎻愮ず澶辫触
-                                          LogicView.TipView.ShowFlashTip(Language.StringByID(MyInternationalizationString.addFailed));
-                                          return;
-                                      }
-                                      else
-                                      {
-                                          logicId = addResult;
-                                          timeValue = int.Parse(str);
-                                          Send.CurrentDoorLock.IsDoorLockNormallyMode = true;
-                                          _if = false;
-                                          ModeView();
-                                          ///娣诲姞APP寮�鍚父寮�妯″紡鐨勫巻鍙茶褰�
-                                          UserCenter.HdlDeviceDoorLockLogic.Current.AddDoorHistoryLog(Send.CurrentDoorLock, 9001, string.Empty);
-                                      }
+                    LogicView.TipView.ShowConfrimTip(() =>
+                    {///鍐嶆纭
+                        LogicView.TipView.ShowInputTip(true, async (str) =>
+                        {///纭鍙戦�佸懡浠�
+                            CommonPage.Loading.Start();
+                            try
+                            {
+                                ///xm
+                                var result = await UserCenter.DoorLock.DoorLockCommonInfo.SetNormallyOpenModeFuncAsync(Send.CurrentDoorLock);
+                                if (!result)
+                                {
+                                    LogicView.TipView.ShowFlashTip(Language.StringByID(MyInternationalizationString.openFailed));
+                                    return;
+                                }
+                                else
+                                {
+                                    ///鍥犱负鏈夊父寮�妯″紡涓嬫墠鍙互鍒涘缓澶辨晥閫昏緫锛�
+                                    SkipView.GetLogicAll(Send.CurrentDoorLock);//鍒犻櫎涔嬪墠鎵�鏈夊け鏁堥�昏緫
+                                    var addResult = await SkipView.LockAddModifyLogic(int.Parse(str), Send.CurrentDoorLock);//娣诲姞涓�鏉″け鏁堥�昏緫
+                                    if (addResult == 0)
+                                    {
+                                        ///鍙璇村鏋滃父寮�妯″紡寮�锛屽垱寤鸿嚜鍔ㄥ寲澶辫触锛岄偅涔堝皢瑕佸彂涓�鏉″父寮�妯″紡鍏抽棴鍛戒护;
+                                        UserCenter.DoorLock.DoorLockCommonInfo.DelNormallyOpenMode(Send.CurrentDoorLock);
+                                        ///鎻愮ず澶辫触
+                                        LogicView.TipView.ShowFlashTip(Language.StringByID(MyInternationalizationString.addFailed));
+                                        return;
+                                    }
+                                    else
+                                    {
+                                        logicId = addResult;
+                                        timeValue = int.Parse(str);
+                                        Send.CurrentDoorLock.IsDoorLockNormallyMode = true;
+                                        _if = false;
+                                        ModeView();
+                                        ///娣诲姞APP寮�鍚父寮�妯″紡鐨勫巻鍙茶褰�
+                                        UserCenter.HdlDeviceDoorLockLogic.Current.AddDoorHistoryLog(Send.CurrentDoorLock, 9001, string.Empty);
+                                    }
 
 
-                                  }
-                              }
-                              catch
-                              {
+                                }
+                            }
+                            catch
+                            {
 
-                              }
-                              finally
-                              {
-                                  Application.RunOnMainThread(() =>
-                                  {
-                                      CommonPage.Loading.Hide();
+                            }
+                            finally
+                            {
+                                Application.RunOnMainThread(() =>
+                                {
+                                    CommonPage.Loading.Hide();
 
-                                  });
-                              }
-                          });
+                                });
+                            }
+                        });
 
-                     });
+                    });
 
-                 };
+                };
             }
             listLogicFl.Y = fLayout.Bottom;
             listLogicFl.X = Application.GetRealWidth(58);
@@ -477,7 +478,7 @@
             listLogicFl.Width = Application.GetRealWidth(1022);
             listLogicFl.BackgroundColor = ZigbeeColor.Current.LogicBlankBackgroundColor;
 
-            verticalRefresh.Y = Application.GetRealHeight(187); 
+            verticalRefresh.Y = Application.GetRealHeight(187);
             verticalRefresh.X = Application.GetRealWidth(46);
             verticalRefresh.Height = listLogicFl.Height - Application.GetRealHeight(187);//鍔ㄦ�佹敼鍔ㄤ笂涓嬫粦鍔╲iew楂樺害;
             verticalRefresh.Width = listLogicFl.Width - Application.GetRealWidth(46);
@@ -488,10 +489,10 @@
         /// <param name="yes"></param>
         private async void Read(bool yes)
         {
-            if (yes)
-            {
-                CommonPage.Loading.Start();
-            }
+            //if (yes)
+            // {
+            CommonPage.Loading.Start();
+            // }
             try
             {
                 if (Common.Logic.SoneLogicList.Count == 0)
@@ -519,13 +520,20 @@
             {
                 var dd = e.Message;
             }
-            //鑷姩鍖�
-            RefreshView();
-            if (yes)
+            finally
             {
-                CommonPage.Loading.Hide();
+                Application.RunOnMainThread(() =>
+                {
+                    // if (yes)
+                    // {
+                    CommonPage.Loading.Hide();
+                    // }
+                    //鑷姩鍖�
+                    RefreshView();
 
+                });
             }
+
         }
         /// <summary>
         /// 璁板綍宸︽粦鐘舵��
@@ -542,6 +550,7 @@
             {
                 if (!SkipView.ExistLogic(logic, Send.CurrentDoorLock))
                 {
+                    ///涓嶆槸璇ラ棬閿佽嚜鍔ㄥ寲灏变笉鏄剧ず鍑烘潵;
                     continue;
                 }
                 #region  鑷姩鍖栧竷灞�View
@@ -701,17 +710,22 @@
                 };
             }
         }
-
         /// <summary>
-        /// 灏哢NIX鏃堕棿鎴宠浆鎹㈡垚绯荤粺鏃堕棿(绮剧‘鍒扮)
+        /// 鏃堕棿鎴宠浆鎹㈡垚鏃堕棿鏍煎紡
+        /// </summary>
+        /// <param name="unixTimeStamp">鏃堕棿鎴�</param>
         /// <returns></returns>
-        public DateTime GetLocalTime(int unixTimeStamp)
+        public DateTime GetLocalTime(long unixTimeStamp)
         {
-            DateTime dtStart = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1));
-            long lTime = long.Parse(unixTimeStamp + "0000000");
-            TimeSpan toNow = new TimeSpan(lTime);
-            DateTime dtResult = dtStart.Add(toNow);
-            return dtResult;
+            //DateTime dtStart = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1));
+            //long lTime = long.Parse(unixTimeStamp + "0000000");
+            //TimeSpan toNow = new TimeSpan(lTime);
+            //DateTime dtResult = dtStart.Add(toNow);
+            //return dtResult;
+
+            System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1)); // 褰撳湴鏃跺尯
+            return startTime.AddMilliseconds(unixTimeStamp);
+
         }
     }
 }

--
Gitblit v1.8.0