Пример #1
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);
                }
            }
                             );
        }
Пример #2
0
        static void Main(string[] args)
        {
            if (Properties.Settings.Default.forceNonParallel)
            {
                options = new ParallelOptions {
                    MaxDegreeOfParallelism = -1
                };
            }
            else
            {
                if (Properties.Settings.Default.MaxThreads < 2)
                {
                    options = new ParallelOptions {
                        MaxDegreeOfParallelism = 1
                    };
                }
                else
                {
                    options = new ParallelOptions {
                        MaxDegreeOfParallelism = Properties.Settings.Default.MaxThreads
                    };
                }
            }

            List <MOE.Common.Models.Signal> signalsDT;

            MOE.Common.Models.SPM db = new MOE.Common.Models.SPM();
            using (db)
            {
                signalsDT = (from s in db.Signals
                             where s.ControllerTypeID == 4
                             select s).ToList();
            }



            Parallel.ForEach(signalsDT, options, row =>
                             //foreach (var row in signalsDT )
            {
                if (TestIPAddress(row))
                {
                    string signalId = row.SignalID;

                    Console.WriteLine("Starting signal" + signalId);

                    MOE.Common.Business.MaxTimeHDLogClient client = new MOE.Common.Business.MaxTimeHDLogClient();

                    XmlDocument xml = client.GetSince(row.IPAddress, GetMostRecentRecordTime(signalId));

                    SaveToDB(xml, signalId);

                    Console.WriteLine("Finished signal" + signalId);
                }
            }
                             );
        }
Пример #3
0
        public RLMPlan(DateTime start, DateTime end, int planNumber,
                       List <MOE.Common.Models.Controller_Event_Log> cycleEvents,
                       double srlvSeconds, Models.Approach approach)
        {
            Approach        = approach;
            startTime       = start;
            endTime         = end;
            this.planNumber = planNumber;
            bool usePermissivePhase = false;

            MOE.Common.Models.SPM db = new MOE.Common.Models.SPM();
            List <int>            l  = new List <int> {
                1, 8, 9, 10, 11
            };
            List <MOE.Common.Models.Controller_Event_Log> permEvents = null;

            if (Approach.PermissivePhaseNumber != null)
            {
                usePermissivePhase = true;
                MOE.Common.Models.Repositories.IControllerEventLogRepository cveRepository =
                    MOE.Common.Models.Repositories.ControllerEventLogRepositoryFactory.Create();
                permEvents = cveRepository.GetEventsByEventCodesParam(Approach.SignalID,
                                                                      start, end, l, Approach.ProtectedPhaseNumber);
                foreach (Models.Controller_Event_Log row in cycleEvents)
                {
                    if (row.Timestamp >= start && row.Timestamp <= end && GetEventType(row.EventCode) == RLMCycle.EventType.BeginYellowClearance)
                    {
                        foreach (MOE.Common.Models.Controller_Event_Log permRow in permEvents)
                        {
                            if (GetEventType(permRow.EventCode) == RLMCycle.EventType.BeginYellowClearance)
                            {
                                if (row.Timestamp == permRow.Timestamp)
                                {
                                    usePermissivePhase = false;
                                }
                            }
                        }
                    }
                }
            }
            this.srlvSeconds = srlvSeconds;
            startTime        = start;
            endTime          = end;
            if (usePermissivePhase)
            {
                GetRedCycle(start, end, permEvents);
            }
            else
            {
                GetRedCycle(start, end, cycleEvents);
            }
        }
Пример #4
0
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);

            using (var db = new MOE.Common.Models.SPM())
            {
                if (!db.Database.Exists())
                {
                    db.Database.Initialize(true);
                    var config   = new MOE.Common.Migrations.Configuration();
                    var migrator = new System.Data.Entity.Migrations.DbMigrator(config);
                    migrator.Update();
                }
            }
        }
Пример #5
0
        public static void AddDefaultObjectsToApproach(Models.Approach appr, MOE.Common.Models.SPM db)
        {
            Models.Detector D = new Models.Detector();

            Models.DetectionType basic = (from r in db.DetectionTypes
                                          where r.DetectionTypeID == 1
                                          select r).FirstOrDefault();

            D.LaneTypeID     = 1;
            D.MovementTypeID = 1;
            //D.Description = appr.Description + "Thru (Phase Only)";
            appr.Detectors.Add(D);

            //LeftTurn
            Models.Detector D2 = new Models.Detector();
            D2.LaneTypeID     = 1;
            D2.MovementTypeID = 3;
            //LG2.Description = appr.Description + "Left (Phase Only)";
            appr.Detectors.Add(D2);
        }
Пример #6
0
 private void Save()
 {
     try
     {
         MOE.Common.Models.SPM db = new MOE.Common.Models.SPM();
         {
             MOE.Common.Models.Speed_Events se = new MOE.Common.Models.Speed_Events();
             se.DetectorID = this.sensorId;
             se.timestamp  = this.date;
             se.MPH        = this.mph;
             se.KPH        = this.kph;
             Regex r = new Regex("^[a-zA-Z0-9]*$");
             if (r.IsMatch(se.DetectorID))
             {
                 db.Speed_Events.Add(se);
                 db.SaveChanges();
             }
         }
     }
     catch (DbUpdateException ex)
     {
         SqlException innerException = ex.InnerException.InnerException as SqlException;
         if (innerException != null && (innerException.Number == 2627 || innerException.Number == 2601))
         {
         }
         else
         {
             MOE.Common.Models.Repositories.IApplicationEventRepository eventRepository =
                 MOE.Common.Models.Repositories.ApplicationEventRepositoryFactory.Create();
             eventRepository.QuickAdd("SpeedListener", this.GetType().ToString(), "Save",
                                      MOE.Common.Models.ApplicationEvent.SeverityLevels.High, ex.HResult.ToString() + ex.Message + ex.InnerException);
         }
     }
     catch (Exception ex)
     {
         MOE.Common.Models.Repositories.IApplicationEventRepository eventRepository =
             MOE.Common.Models.Repositories.ApplicationEventRepositoryFactory.Create();
         eventRepository.QuickAdd("SpeedListener", this.GetType().ToString(), "Save",
                                  MOE.Common.Models.ApplicationEvent.SeverityLevels.High, ex.HResult.ToString() + ex.Message + ex.InnerException);
     }
 }
Пример #7
0
 private void Save()
 {
     try
     {
         MOE.Common.Models.SPM db = new MOE.Common.Models.SPM();
         {
             MOE.Common.Models.Speed_Events se = new MOE.Common.Models.Speed_Events();
             se.DetectorID = this.sensorId;
             se.timestamp  = this.date;
             se.MPH        = this.mph;
             se.KPH        = this.kph;
             Regex r = new Regex("^[a-zA-Z0-9]*$");
             if (r.IsMatch(se.DetectorID))
             {
                 db.Speed_Events.Add(se);
                 db.SaveChanges();
             }
         }
     }
     catch (DbUpdateException ex)
     {
         //NOTE: I think trying to write to the applicaiton log when the DB is unavailbe is making the serivce crash more than it needs too.
         SqlException innerException = ex.InnerException.InnerException as SqlException;
         if (innerException != null && (innerException.Number == 2627 || innerException.Number == 2601))
         {
         }
         else
         {
             //applicationEventRepository.QuickAdd("SpeedListener", this.GetType().ToString(), "Save",
             //    MOE.Common.Models.ApplicationEvent.SeverityLevels.High, ex.HResult.ToString() + ex.Message + ex.InnerException);
         }
     }
     catch (Exception ex)
     {
         //applicationEventRepository.QuickAdd("SpeedListener", this.GetType().ToString(), "Save",
         //    MOE.Common.Models.ApplicationEvent.SeverityLevels.High, ex.HResult.ToString() + ex.Message + ex.InnerException);
     }
 }
Пример #8
0
        public MOE.Common.Business.ControllerEventLogs CombineDetectorData(DateTime startDate, DateTime endDate, string signalId)
        {
            MOE.Common.Models.SPM db = new MOE.Common.Models.SPM();
            MOE.Common.Business.ControllerEventLogs detectortable =
                new MOE.Common.Business.ControllerEventLogs(signalId, startDate, endDate);
            List <MOE.Common.Business.ControllerEventLogs> Tables = new List <MOE.Common.Business.ControllerEventLogs>();

            foreach (MOE.Common.Business.Detector Detector in DetectorsForRLM)
            {
                MOE.Common.Business.ControllerEventLogs TEMPdetectortable =
                    new MOE.Common.Business.ControllerEventLogs(signalId, startDate, endDate, Detector.Channel,
                                                                new List <int>()
                {
                    82
                });
                Tables.Add(TEMPdetectortable);
            }
            foreach (MOE.Common.Business.ControllerEventLogs Table in Tables)
            {
                detectortable.MergeEvents(Table);
            }
            return(detectortable);
        }
Пример #9
0
 public static Models.Approach CreateNewApproachWithDefaultValues(Models.Signal signal, Models.DirectionType dir, MOE.Common.Models.SPM db)
 {
     Models.Approach appr = new Models.Approach();
     appr.Description     = signal.SignalID + dir.Abbreviation;
     appr.DirectionTypeID = dir.DirectionTypeID;
     appr.SignalID        = signal.SignalID;
     appr.MPH             = 0;
     return(appr);
 }
Пример #10
0
        static void Main(string[] args)
        {
            MOE.Common.Models.Repositories.IApplicationEventRepository ErrorRepository = MOE.Common.Models.Repositories.ApplicationEventRepositoryFactory.Create();
            int  MaxThreads       = Properties.Settings.Default.MaxThreads;
            int  SNMPTimeout      = Properties.Settings.Default.SNMPTimeout;
            int  SNMPRetry        = Properties.Settings.Default.SNMPRetry;
            int  SNMPPort         = Properties.Settings.Default.SNMPPort;
            bool DeleteAfterFTP   = Properties.Settings.Default.DeleteFilesAfterFTP;
            bool ImportAfterFTP   = Properties.Settings.Default.ImportAfterFTP;
            int  WaitBetweenFiles = Properties.Settings.Default.WaitBetweenFiles;
            var  connection       = ConfigurationManager.ConnectionStrings["SPM"].ConnectionString;

            MOE.Common.Business.BulkCopyOptions Options = new MOE.Common.Business.BulkCopyOptions(connection, Properties.Settings.Default.DestinationTableName,
                                                                                                  Properties.Settings.Default.WriteToConsole, Properties.Settings.Default.forceNonParallel, Properties.Settings.Default.MaxThreads, Properties.Settings.Default.DeleteFiles,
                                                                                                  Properties.Settings.Default.EarliestAcceptableDate, Properties.Settings.Default.BulkCopyBatchSize, Properties.Settings.Default.BulkCopyTimeOut);


            //MOE.Common.Data.Signals.SignalFTPparamsDataTable SignalsDT = new MOE.Common.Data.Signals.SignalFTPparamsDataTable();
            //MOE.Common.Data.SignalsTableAdapters.SignalFTPparamsTableAdapter SignalsTA = new MOE.Common.Data.SignalsTableAdapters.SignalFTPparamsTableAdapter();

            //SignalsTA.Fill(SignalsDT);

            MOE.Common.Models.SPM db = new MOE.Common.Models.SPM();

            var SignalsDT = from r in db.Signals
                            join f in db.ControllerType on r.ControllerTypeID equals f.ControllerTypeID
                            where r.ControllerTypeID != 4
                            select new
            {
                SignalId       = r.SignalID,
                PrimaryName    = r.PrimaryName,
                Secondary_Name = r.SecondaryName,
                Region         = r.Region,
                IP_Address     = r.IPAddress,
                UserName       = f.UserName,
                Password       = f.Password,
                FTPDirectory   = f.FTPDirectory,
                ActiveFTP      = f.ActiveFTP
            };



            var options = new ParallelOptions {
                MaxDegreeOfParallelism = Properties.Settings.Default.MaxThreads
            };

            Parallel.ForEach(SignalsDT.AsEnumerable(), options, row =>
                             //foreach (var row in SignalsDT)
            {
                try
                {
                    MOE.Common.Business.Signal signal = new MOE.Common.Business.Signal();

                    //Initialize the signal, because I didn't make a proper constructor

                    signal.PrimaryName   = row.PrimaryName.ToString();
                    signal.SecondaryName = row.Secondary_Name.ToString();
                    signal.Region        = row.Region.ToString();
                    signal.IpAddress     = row.IP_Address.ToString();
                    signal.SignalID      = row.SignalId.ToString();



                    string Username  = row.UserName;
                    string Password  = row.Password;
                    string LocalDir  = Properties.Settings.Default.HostDir + signal.SignalID + "\\";
                    string RemoteDir = row.FTPDirectory;
                    bool ActiveMode  = row.ActiveFTP;


                    if (!Directory.Exists(LocalDir))
                    {
                        Directory.CreateDirectory(LocalDir);
                    }


                    //Get the records over FTP
                    if (CheckIfIPAddressIsValid(signal))
                    {
                        try
                        {
                            //var tokenSource = new CancellationTokenSource(TimeSpan.FromSeconds(30));
                            //var token = tokenSource.Token;

                            //Task task = Task.Factory.StartNew(() => MOE.Common.Business.Signal.GetCurrentRecords(signal.IpAddress, signal.SignalID, Username, Password, LocalDir, RemoteDir, DeleteAfterFTP,
                            //    SNMPRetry, SNMPTimeout, SNMPPort, ImportAfterFTP, ActiveMode, 0, Options, Properties.Settings.Default.FTPTimeout, token), token);

                            //task.Wait();

                            //if (token.IsCancellationRequested)
                            //    token.ThrowIfCancellationRequested();

                            MOE.Common.Business.Signal.GetCurrentRecords(signal.IpAddress, signal.SignalID, Username, Password, LocalDir, RemoteDir, DeleteAfterFTP,
                                                                         SNMPRetry, SNMPTimeout, SNMPPort, ImportAfterFTP, ActiveMode, 0, Options, Properties.Settings.Default.FTPTimeout);
                        }
                        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 " + row.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 " + row.SignalId);
                }
            }

                             );



            //if (Properties.Settings.Default.DealWithMoab)
            //{
            //    try
            //    {
            //        DealWithMoab(Options);
            //    }
            //    catch
            //    {

            //    }
            //}
        }
Пример #11
0
        static void Main(string[] args)
        {
            MOE.Common.Models.Repositories.IApplicationEventRepository ErrorRepository = MOE.Common.Models.Repositories.ApplicationEventRepositoryFactory.Create();
            int  MaxThreads       = Properties.Settings.Default.MaxThreads;
            int  SNMPTimeout      = Properties.Settings.Default.SNMPTimeout;
            int  SNMPRetry        = Properties.Settings.Default.SNMPRetry;
            int  SNMPPort         = Properties.Settings.Default.SNMPPort;
            bool DeleteAfterFTP   = Properties.Settings.Default.DeleteFilesAfterFTP;
            bool ImportAfterFTP   = Properties.Settings.Default.ImportAfterFTP;
            int  WaitBetweenFiles = Properties.Settings.Default.WaitBetweenFiles;
            var  connection       = ConfigurationManager.ConnectionStrings["SPM"].ConnectionString;

            MOE.Common.Business.BulkCopyOptions Options = new MOE.Common.Business.BulkCopyOptions(connection, Properties.Settings.Default.DestinationTableName,
                                                                                                  Properties.Settings.Default.WriteToConsole, Properties.Settings.Default.forceNonParallel, Properties.Settings.Default.MaxThreads, Properties.Settings.Default.DeleteFiles,
                                                                                                  Properties.Settings.Default.EarliestAcceptableDate, Properties.Settings.Default.BulkCopyBatchSize, Properties.Settings.Default.BulkCopyTimeOut);



            MOE.Common.Models.SPM _db = new MOE.Common.Models.SPM();

            MOE.Common.Models.Repositories.ISignalsRepository _sr = SignalsRepositoryFactory.Create(_db);


            var _signals = _sr.GetSignalFTPInfoForAllFTPSignals();



            var options = new ParallelOptions {
                MaxDegreeOfParallelism = Properties.Settings.Default.MaxThreads
            };

            Parallel.ForEach(_signals.AsEnumerable(), options, row =>
                             //foreach (var row in SignalsDT)
            {
                try
                {
                    MOE.Common.Business.Signal signal = new MOE.Common.Business.Signal();

                    //Initialize the signal, because I didn't make a proper constructor

                    signal.PrimaryName   = row.PrimaryName.ToString();
                    signal.SecondaryName = row.Secondary_Name.ToString();
                    signal.IpAddress     = row.IP_Address.ToString();
                    signal.SignalID      = row.SignalID.ToString();



                    string Username  = row.User_Name;
                    string Password  = row.Password;
                    string LocalDir  = Properties.Settings.Default.HostDir + signal.SignalID + "\\";
                    string RemoteDir = row.FTP_Directory;
                    bool ActiveMode  = row.ActiveFTP;


                    if (!Directory.Exists(LocalDir))
                    {
                        Directory.CreateDirectory(LocalDir);
                    }


                    //Get the records over FTP
                    if (CheckIfIPAddressIsValid(signal))
                    {
                        try
                        {
                            MOE.Common.Business.Signal.GetCurrentRecords(signal.IpAddress, signal.SignalID, Username, Password, LocalDir, RemoteDir, DeleteAfterFTP,
                                                                         SNMPRetry, SNMPTimeout, SNMPPort, ImportAfterFTP, ActiveMode, 0, Options, Properties.Settings.Default.FTPTimeout);
                        }
                        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 " + row.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 " + row.SignalID);
                }
            }

                             );
        }
Пример #12
0
 protected override void Seed(MOE.Common.Models.SPM context)
 {
     base.Seed(context);
 }
Пример #13
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"));
            }
            //}
        }