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;
            }
        }
Пример #6
0
        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;
 }
Пример #9
0
        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"));
            }
            //}
        }