陈嘉乐
2020-05-18 796c8eef0f690d0d04e14db1ecd3d365ed604017
ZigbeeApp/Shared/Phone/Device/Logic/SoneLogicList.cs
@@ -16,7 +16,7 @@
        }
        /// 给徐梅刷新界面用的
        public  Action<bool> action;
        public Action<bool> action;
        ///第二块第一级父控件
        FrameLayout fLayout = new FrameLayout();
        ///第三块第一级父控件
@@ -31,9 +31,14 @@
        /// 记录选中时间
        /// </summary>
        public int timeValue = 0;
        /// <summary>
        /// 时间戳
        /// </summary>
        public int timeLong = 0;
        public async void Show()
        {
            #region  界面的布局代码
            UserView.HomePage.Instance.ScrollEnabled = false;//锁住左滑
            TopView view = new TopView();
@@ -60,12 +65,12 @@
            this.AddChidren(middle);
            #endregion
            //是常开模式再去读取
            if (Send.CurrentDoorLock.IsDoorLockNormallyMode)
            {
                //进来更新一次
                //查找是否存在时效性自动化;有的话就返回自动化对象;
              var  logic = await SkipView.GetLogicIfon(Send.CurrentDoorLock);
                var logic = await SkipView.GetLogicIfon(Send.CurrentDoorLock);
                if (logic != null)
                {
                    try
@@ -73,6 +78,8 @@
                        //进来更新一次值
                        logicId = logic.LogicId;
                        timeValue = int.Parse(logic.Conditions[0]["DoorLockOpenDelayTime"]);
                        timeLong = int.Parse(logic.Conditions[0]["TriggerTime"]);
                    }
                    catch { }
                }
@@ -221,7 +228,7 @@
        /// <summary>
        /// 常开模式开关切换图标界面
        /// </summary>
        public  void ModeView()
        public void ModeView()
        {
            fLayout.RemoveAll();
@@ -306,15 +313,16 @@
                if (logicId != 0)
                {
                    openModeFl.AddChidren(timeTextBtn);
                    var datetime = GetLocalTime(timeLong);
                    ///有时效性常开才显示时间条件文本
                    var y = DateTime.Now.Year.ToString();//那一年
                    var m = DateTime.Now.Month.ToString();//那一月
                    var d = DateTime.Now.ToString("dd");//那一天
                    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;//分钟
                    var y = datetime.Year.ToString();//那一年
                    var m = datetime.Month.ToString();//那一月
                    var d = datetime.ToString("dd");//那一天
                    var h = int.Parse(datetime.ToString("HH"));//小时
                                                               // int dayInt = (h + timeValue) / 24;//算出几天后执行
                                                               // int hour = (h + timeValue) % 24;//算出几天后那个时间执行
                                                               // int days = int.Parse(d) + dayInt;
                    int minute = datetime.Minute;//分钟
                    string text1 = Language.StringByID(MyInternationalizationString.timeSensitive);
                    string text2 = Language.StringByID(MyInternationalizationString.yearSone);
                    string text3 = Language.StringByID(MyInternationalizationString.monthSone);
@@ -322,7 +330,7 @@
                    string text5 = Language.StringByID(MyInternationalizationString.hour1);
                    string text6 = Language.StringByID(MyInternationalizationString.executeSone);
                    // timeTextBtn.Text = text1 + y + text2 + m + text3 + days.ToString() + text4 + hour.ToString() + text5 + minute.ToString() + text6;
                    timeTextBtn.Text = text1 + m + text3 + days.ToString() + text4 + hour.ToString() + text5 + minute.ToString() + text6;
                    timeTextBtn.Text = text1 + m + text3 + d + text4 + h + text5 + minute.ToString() + text6;
                }
@@ -447,7 +455,7 @@
        /// 读取自动化列表数据;
        /// </summary>
        /// <param name="yes"></param>
        private async void Read( bool yes)
        private async void Read(bool yes)
        {
            if (yes)
            {
@@ -473,7 +481,7 @@
                                Common.Logic.SoneLogicList.Add(logic);
                            }
                        }
                    }
                    }
                }
            }
            catch (Exception e)
@@ -662,6 +670,17 @@
                };
            }
        }
        /// <summary>
        /// 将UNIX时间戳转换成系统时间(精确到秒)
        /// <returns></returns>
        public DateTime GetLocalTime(int 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;
        }
    }
}