Beispiel #1
0
        /// <summary>
        /// 永久觸發控制方法
        /// </summary>
        /// <returns></returns>
        public DefaultBoolean Time_Keep_Control_Function()
        {
            DefaultBoolean           Switch            = DefaultBoolean.None;
            List <TimeControlConfig> TimeControlConfig = new List <TimeControlConfig>();
            TimeControlSetting       SpecificDate      = null;

            TimeControlConfig = MySqlMethod.SearchTimeControl();
            SpecificDate      = MySqlMethod.SearchTimeControlSetting();
            int Week            = (int)DateTime.Now.DayOfWeek;
            var Generalday      = TimeControlConfig.Where(g => g.GroupIndex == GroupIndex & g.WeekIndex == Week & Convert.ToDateTime(g.StartTime) < DateTime.Now & Convert.ToDateTime(g.EndTime) >= DateTime.Now).ToList();
            var OfficialHoliday = TimeControlConfig.Where(g => g.GroupIndex == GroupIndex & g.WeekIndex == 7 & Convert.ToDateTime(g.StartTime) < DateTime.Now & Convert.ToDateTime(g.EndTime) >= DateTime.Now).ToList();
            var Specialday      = TimeControlConfig.Where(g => g.GroupIndex == GroupIndex & g.WeekIndex == 8 & Convert.ToDateTime(g.StartTime) < DateTime.Now & Convert.ToDateTime(g.EndTime) >= DateTime.Now).ToList();

            if (SpecificDate != null)
            {
                if (SpecificDate.SpecificDateIndex == 0)
                {
                    if (OfficialHoliday.Count > 0)
                    {
                        if (Convert.ToDateTime(OfficialHoliday[0].StartTime) <= DateTime.Now)
                        {
                            Switch = DefaultBoolean.True;
                        }
                        else if (Convert.ToDateTime(OfficialHoliday[0].EndTime) >= DateTime.Now)
                        {
                            Switch = DefaultBoolean.False;
                        }
                    }
                }
                else if (SpecificDate.SpecificDateIndex == 1)
                {
                    if (Specialday.Count > 0)
                    {
                        if (Convert.ToDateTime(Specialday[0].StartTime) <= DateTime.Now)
                        {
                            Switch = DefaultBoolean.True;
                        }
                        else if (Convert.ToDateTime(Specialday[0].EndTime) <= DateTime.Now)
                        {
                            Switch = DefaultBoolean.False;
                        }
                    }
                }
            }
            else
            {
                if (Generalday.Count > 0)
                {
                    if (Convert.ToDateTime(Generalday[0].StartTime) <= DateTime.Now)
                    {
                        Switch = DefaultBoolean.True;
                    }
                    else if (Convert.ToDateTime(Generalday[0].EndTime) >= DateTime.Now)
                    {
                        Switch = DefaultBoolean.False;
                    }
                }
            }
            return(Switch);
        }
Beispiel #2
0
        /// <summary>
        /// 一段觸發控制方法
        /// </summary>
        /// <returns></returns>
        public DefaultBoolean Time_Pulse_Control_Function()
        {
            DefaultBoolean           Switch            = DefaultBoolean.None;
            List <TimeControlConfig> TimeControlConfig = new List <TimeControlConfig>();
            TimeControlSetting       SpecificDate      = null;

            TimeControlConfig = MySqlMethod.SearchTimeControl();
            SpecificDate      = MySqlMethod.SearchTimeControlSetting();
            int Week            = (int)DateTime.Now.DayOfWeek;
            var Generalday      = TimeControlConfig.Where(g => g.GroupIndex == GroupIndex & g.WeekIndex == Week).ToList();
            var OfficialHoliday = TimeControlConfig.Where(g => g.GroupIndex == GroupIndex & g.WeekIndex == 7).ToList();
            var Specialday      = TimeControlConfig.Where(g => g.GroupIndex == GroupIndex & g.WeekIndex == 8).ToList();

            if (SpecificDate != null)
            {
                if (SpecificDate.SpecificDateIndex == 0)
                {
                    if (OfficialHoliday.Count > 0)
                    {
                        foreach (var item in OfficialHoliday)
                        {
                            if (Convert.ToDateTime(item.StartTime) == Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:00")))
                            {
                                Switch = (DefaultBoolean)Convert.ToInt32(item.SwitchIndex);
                            }
                        }
                    }
                }
                else if (SpecificDate.SpecificDateIndex == 1)
                {
                    if (Specialday.Count > 0)
                    {
                        foreach (var item in Specialday)
                        {
                            if (Convert.ToDateTime(item.StartTime) == Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:00")))
                            {
                                Switch = (DefaultBoolean)Convert.ToInt32(item.SwitchIndex);
                            }
                        }
                    }
                }
            }
            else
            {
                if (Generalday.Count > 0)
                {
                    foreach (var item in Generalday)
                    {
                        if (Convert.ToDateTime(item.StartTime) == Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:00")))
                        {
                            Switch = (DefaultBoolean)Convert.ToInt32(item.SwitchIndex);
                        }
                    }
                }
            }
            return(Switch);
        }
Beispiel #3
0
        /// <summary>
        /// 查詢特殊日期資訊
        /// </summary>
        /// <returns></returns>
        public TimeControlSetting SearchTimeControlSetting()
        {
            TimeControlSetting setting = null;
            string             sql     = "SELECT * FROM TimerControlSetting WHERE GroupIndex = @GroupIndex AND ttimen = @ttimen";

            try
            {
                using (var conn = new SqlConnection(scsb.ConnectionString))
                {
                    setting = conn.QuerySingleOrDefault <TimeControlSetting>(sql, new { GroupIndex, ttimen = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd")) });
                }
            }
            catch (Exception ex)
            {
                Log.Error(ex, sql);
            }
            return(setting);
        }