/// <summary> /// This method checks to see if certain default events are active and scheduled, and if not, it adds them /// </summary> public void AddDefaultQueueEvents() { List <IEvent> events = GetEvents((int)EventStatusEnum.Scheduled, (int)EventTypeEnum.CleanEventQueue, true); if (events.Count == 0) { IEvent evt = EventFactory.CreateEvent((int)EventTypeEnum.CleanEventQueue); DateTime tomorrow = DateTime.Now.AddDays(1.0); evt.ScheduledDate = new DateTime(tomorrow.Year, tomorrow.Month, tomorrow.Day); SaveEvent(evt); } events = GetEvents((int)EventStatusEnum.Scheduled, (int)EventTypeEnum.CleanReportQueue, true); if (events.Count == 0) { IEvent evt = EventFactory.CreateEvent((int)EventTypeEnum.CleanReportQueue); DateTime tomorrow = DateTime.Now.AddDays(1.0); evt.ScheduledDate = new DateTime(tomorrow.Year, tomorrow.Month, tomorrow.Day); SaveEvent(evt); } }
public List <IEvent> GetEvents(int eventStatusID, int eventTypeID, bool includeFutureEvents = false) { List <IEvent> events = new List <IEvent>(); string procName = "EventQueue_Get"; using (DataTable dt = new DataTable("Data")) { using (SqlConnection cn = new SqlConnection(WTSCommon.WTS_ConnectionString)) { cn.Open(); using (SqlCommand cmd = new SqlCommand(procName, cn)) { cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.Add("@EVENT_STATUSID", SqlDbType.Int).Value = eventStatusID; cmd.Parameters.Add("@EVENT_TYPEID", SqlDbType.Int).Value = eventTypeID; cmd.Parameters.Add("@MaxDate", SqlDbType.DateTime).Value = includeFutureEvents ? (object)DBNull.Value : DateTime.Now; try { using (SqlDataReader dr = cmd.ExecuteReader(CommandBehavior.Default)) { if (dr != null) { dt.Load(dr); foreach (DataRow row in dt.Rows) { int loadedEventTypeID = (int)row["EVENT_TYPEID"]; long eventQueueID = (long)row["EventQueueID"]; IEvent evt = EventFactory.CreateEvent(loadedEventTypeID); if (evt != null) { try { evt.Load(row); events.Add(evt); } catch (Exception ex) { LogUtility.LogException(ex); UpdateEventStatus(eventQueueID, (int)EventStatusEnum.Error, DateTime.Now, "Unable to parse event.", ex.Message + " " + ex.StackTrace); } } else { LogUtility.LogError("Unable to parse event. Invalid EVENT_TYPEID (" + loadedEventTypeID + ")."); UpdateEventStatus(eventQueueID, (int)EventStatusEnum.Error, DateTime.Now, "Unable to parse event.", "Unable to parse event. Invalid EVENT_TYPEID (" + loadedEventTypeID + ")."); } } } else { return(new List <IEvent>()); } } } catch (Exception ex) { LogUtility.LogException(ex); throw; } } } } return(events); }