/// <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); }
/// <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); }
/// <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); }