public Controller_Event_Log GetFirstEventBeforeDate(string signalId, int eventCode, DateTime date) { try { DateTime tempDate = date.AddDays(-1); var lastEvent = _db.Controller_Event_Log.Where(c => c.SignalID == signalId && c.Timestamp >= tempDate && c.Timestamp < date && c.EventCode == eventCode) .OrderByDescending(c => c.Timestamp).FirstOrDefault(); return(lastEvent); } catch (Exception ex) { IApplicationEventRepository logRepository = ApplicationEventRepositoryFactory.Create(); ApplicationEvent e = new ApplicationEvent(); e.ApplicationName = "MOE.Common"; e.Class = GetType().ToString(); e.Function = "GetEventsByEventCodesParamWithOffsetAndLatencyCorrection"; e.SeverityLevel = ApplicationEvent.SeverityLevels.High; e.Description = ex.Message; e.Timestamp = DateTime.Now; logRepository.Add(e); return(null); } }
public List <Controller_Event_Log> GetEventsByEventCodesParamWithOffsetAndLatencyCorrection(string signalId, DateTime startTime, DateTime endTime, List <int> eventCodes, int param, double offset, double latencyCorrection) { try { var events = (from s in _db.Controller_Event_Log where s.SignalID == signalId && s.Timestamp >= startTime && s.Timestamp <= endTime && s.EventParam == param && eventCodes.Contains(s.EventCode) select s).ToList(); events.Sort((x, y) => DateTime.Compare(x.Timestamp, y.Timestamp)); foreach (var cel in events) { cel.Timestamp = cel.Timestamp.AddMilliseconds(offset); cel.Timestamp = cel.Timestamp.AddSeconds(0 - latencyCorrection); } return(events); } catch (Exception ex) { IApplicationEventRepository logRepository = ApplicationEventRepositoryFactory.Create(); ApplicationEvent e = new ApplicationEvent(); e.ApplicationName = "MOE.Common"; e.Class = GetType().ToString(); e.Function = "GetEventsByEventCodesParamWithOffsetAndLatencyCorrection"; e.SeverityLevel = ApplicationEvent.SeverityLevels.High; e.Timestamp = DateTime.Now; e.Description = ex.Message; logRepository.Add(e); throw; } }
public List <Controller_Event_Log> GetSignalEventsByEventCodes(string signalId, DateTime startTime, DateTime endTime, List <int> eventCodes) { try { var events = (from s in _db.Controller_Event_Log where s.SignalID == signalId && s.Timestamp >= startTime && s.Timestamp <= endTime && eventCodes.Contains(s.EventCode) select s).ToList(); events.Sort((x, y) => DateTime.Compare(x.Timestamp, y.Timestamp)); return(events); } catch (Exception ex) { IApplicationEventRepository logRepository = ApplicationEventRepositoryFactory.Create(); ApplicationEvent e = new ApplicationEvent(); e.ApplicationName = "MOE.Common"; e.Class = GetType().ToString(); e.Function = "GetSignalEventsByEventCodes"; e.SeverityLevel = ApplicationEvent.SeverityLevels.High; e.Timestamp = DateTime.Now; e.Description = ex.Message; logRepository.Add(e); throw; } }
public List <Controller_Event_Log> GetSignalEventsByEventCode(string signalId, DateTime startTime, DateTime endTime, int eventCode) { try { return((from r in _db.Controller_Event_Log where r.SignalID == signalId && r.Timestamp >= startTime && r.Timestamp < endTime && r.EventCode == eventCode select r).ToList()); } catch (Exception ex) { IApplicationEventRepository logRepository = ApplicationEventRepositoryFactory.Create(); ApplicationEvent e = new ApplicationEvent(); e.ApplicationName = "MOE.Common"; e.Class = GetType().ToString(); e.Function = "GetSignalEventsByEventCode"; e.SeverityLevel = ApplicationEvent.SeverityLevels.High; e.Timestamp = DateTime.Now; e.Description = ex.Message; logRepository.Add(e); throw; } }
public List <Controller_Event_Log> GetTopNumberOfSignalEventsBetweenDates(string signalId, int numberOfRecords, DateTime startTime, DateTime endTime) { try { List <Controller_Event_Log> events = (from r in _db.Controller_Event_Log where r.SignalID == signalId && r.Timestamp >= startTime && r.Timestamp < endTime select r).Take(numberOfRecords).ToList(); if (events != null) { return(events); } List <Controller_Event_Log> emptyEvents = new List <Controller_Event_Log>(); return(emptyEvents); } catch (Exception ex) { IApplicationEventRepository logRepository = ApplicationEventRepositoryFactory.Create(); ApplicationEvent e = new ApplicationEvent(); e.ApplicationName = "MOE.Common"; e.Class = GetType().ToString(); e.Function = "GetTopNumberOfSignalEventsBetweenDates"; e.SeverityLevel = ApplicationEvent.SeverityLevels.High; e.Timestamp = DateTime.Now; e.Description = ex.Message; logRepository.Add(e); throw; } }
static void Main(string[] args) { IApplicationEventRepository errorRepository = ApplicationEventRepositoryFactory.Create(); SignalFtpOptions signalFtpOptions = new SignalFtpOptions( Convert.ToInt32(ConfigurationManager.AppSettings["SNMPTimeout"]), Convert.ToInt32(ConfigurationManager.AppSettings["SNMPRetry"]), Convert.ToInt32(ConfigurationManager.AppSettings["SNMPPort"]), Convert.ToBoolean(ConfigurationManager.AppSettings["DeleteFilesAfterFTP"]), ConfigurationManager.AppSettings["LocalDirectory"], Convert.ToInt32(ConfigurationManager.AppSettings["FTPConnectionTimeoutInSeconds"]), Convert.ToInt32(ConfigurationManager.AppSettings["FTPReadTimeoutInSeconds"]), Convert.ToBoolean(ConfigurationManager.AppSettings["skipCurrentLog"]), Convert.ToBoolean(ConfigurationManager.AppSettings["RenameDuplicateFiles"]), Convert.ToInt32(ConfigurationManager.AppSettings["waitBetweenFileDownloadMilliseconds"]) ); int maxThreads = Convert.ToInt32(ConfigurationManager.AppSettings["MaxThreads"]); MOE.Common.Models.SPM db = new MOE.Common.Models.SPM(); ISignalsRepository signalsRepository = SignalsRepositoryFactory.Create(db); var signals = signalsRepository.GetLatestVersionOfAllSignalsForFtp(); var options = new ParallelOptions { MaxDegreeOfParallelism = maxThreads }; Parallel.ForEach(signals.AsEnumerable(), options, signal => //foreach (var signal in signals) { try { MOE.Common.Business.SignalFtp signalFtp = new MOE.Common.Business.SignalFtp(signal, signalFtpOptions); if (!Directory.Exists(signalFtpOptions.LocalDirectory + signal.SignalID)) { Directory.CreateDirectory(signalFtpOptions.LocalDirectory + signal.SignalID); } //Get the records over FTP if (CheckIfIPAddressIsValid(signal)) { try { signalFtp.GetCurrentRecords(); } catch (AggregateException ex) { Console.WriteLine("Error At Highest Level for signal " + ex.Message); errorRepository.QuickAdd("FTPFromAllControllers", "Main", "Main Loop", MOE.Common.Models.ApplicationEvent.SeverityLevels.Medium, "Error At Highest Level for signal " + signal.SignalID); } } } catch (AggregateException ex) { Console.WriteLine("Error At Highest Level for signal " + ex.Message); errorRepository.QuickAdd("FTPFromAllControllers", "Main", "Main Loop", MOE.Common.Models.ApplicationEvent.SeverityLevels.Medium, "Error At Highest Level for signal " + signal.SignalID); } } ); }
public int GetEventCountByEventCodesParamDateTimeRange(string signalId, DateTime startTime, DateTime endTime, int startHour, int startMinute, int endHour, int endMinute, List <int> eventCodes, int param) { try { return ((from s in _db.Controller_Event_Log where s.SignalID == signalId && s.Timestamp >= startTime && s.Timestamp <= endTime && ((s.Timestamp.Hour > startHour && s.Timestamp.Hour < endHour) || (s.Timestamp.Hour == startHour && s.Timestamp.Hour == endHour && s.Timestamp.Minute >= startMinute && s.Timestamp.Minute <= endMinute) || (s.Timestamp.Hour == startHour && s.Timestamp.Hour < endHour && s.Timestamp.Minute >= startMinute) || (s.Timestamp.Hour < startHour && s.Timestamp.Hour == endHour && s.Timestamp.Minute <= endMinute)) && s.EventParam == param && eventCodes.Contains(s.EventCode) select s).Count()); } catch (Exception ex) { IApplicationEventRepository logRepository = ApplicationEventRepositoryFactory.Create(); ApplicationEvent e = new ApplicationEvent(); e.ApplicationName = "MOE.Common"; e.Class = GetType().ToString(); e.Function = "GetEventCountByEventCodesParamDateTimeRange"; e.SeverityLevel = ApplicationEvent.SeverityLevels.High; e.Timestamp = DateTime.Now; e.Description = ex.Message; logRepository.Add(e); throw; } }
public static void SetApplicationEventRepository(IApplicationEventRepository newRepository) { applicationEventRepository = newRepository; }
static void Main(string[] args) { IApplicationEventRepository errorRepository = ApplicationEventRepositoryFactory.Create(); //while (true) //{ try { SignalFtpOptions signalFtpOptions = new SignalFtpOptions( Convert.ToInt32(ConfigurationManager.AppSettings["SNMPTimeout"]), Convert.ToInt32(ConfigurationManager.AppSettings["SNMPRetry"]), Convert.ToInt32(ConfigurationManager.AppSettings["SNMPPort"]), Convert.ToBoolean(ConfigurationManager.AppSettings["DeleteFilesAfterFTP"]), ConfigurationManager.AppSettings["LocalDirectory"], Convert.ToInt32(ConfigurationManager.AppSettings["FTPConnectionTimeoutInSeconds"]), Convert.ToInt32(ConfigurationManager.AppSettings["FTPReadTimeoutInSeconds"]), Convert.ToBoolean(ConfigurationManager.AppSettings["skipCurrentLog"]), Convert.ToBoolean(ConfigurationManager.AppSettings["RenameDuplicateFiles"]), Convert.ToInt32(ConfigurationManager.AppSettings["waitBetweenFileDownloadMilliseconds"]), Convert.ToInt32(ConfigurationManager.AppSettings["MaximumNumberOfFilesTransferAtOneTime"]) ); int maxThreads = Convert.ToInt32(ConfigurationManager.AppSettings["MaxThreads"]); int minutesToWait = Convert.ToInt32(ConfigurationManager.AppSettings["MinutesToWait"]); MOE.Common.Models.SPM db = new MOE.Common.Models.SPM(); ISignalsRepository signalsRepository = SignalsRepositoryFactory.Create(db); var signals = signalsRepository.GetLatestVersionOfAllSignalsForFtp(); //.Where(s =>s.SignalID =="7060"); // EOS Signal at Bangerter and 3500 South var options = new ParallelOptions { MaxDegreeOfParallelism = maxThreads }; Parallel.ForEach(signals.AsEnumerable(), options, signal => //foreach (var signal in signals) { try { MOE.Common.Business.SignalFtp signalFtp = new MOE.Common.Business.SignalFtp(signal, signalFtpOptions); if (!Directory.Exists(signalFtpOptions.LocalDirectory + signal.SignalID)) { Directory.CreateDirectory(signalFtpOptions.LocalDirectory + signal.SignalID); } if (CheckIfIPAddressIsValid(signal)) { try { signalFtp.GetCurrentRecords(); } catch (AggregateException ex) { Console.WriteLine("Error At Highest Level for signal " + ex.Message); errorRepository.QuickAdd("FTPFromAllControllers", "Main", "Main Loop", MOE.Common.Models.ApplicationEvent.SeverityLevels.Medium, "Error At Highest Level for signal " + signal.SignalID); } } } catch (AggregateException ex) { Console.WriteLine("Error At Highest Level for signal " + ex.Message); errorRepository.QuickAdd("FTPFromAllControllers", "Main", "Main Loop", MOE.Common.Models.ApplicationEvent.SeverityLevels.Medium, "Error At Highest Level for signal " + signal.SignalID); } //} }); //string timeNow = DateTime.Now.ToString("t"); //Console.WriteLine("At {0}, it is time to take a nap. Program will wait for {1} minutes.", timeNow, minutesToWait); //System.Threading.Thread.Sleep(minutesToWait * 60 * 1000); } catch (AggregateException ex) { Console.WriteLine("Error At Highest Level for Main (FTPfromAllControllers) " + ex.Message); errorRepository.QuickAdd("FTPFromAllControllers", "Main", "Main Loop", MOE.Common.Models.ApplicationEvent.SeverityLevels.Medium, "Error At Highest Level for Main (FTPfromAllControllers) at " + DateTime.Now.ToString("g")); } //} }