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); } } ); }
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); } } ); }
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); } }
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(); } } }
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); }
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); } }
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); } }
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); }
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); }
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 // { // } //} }
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); } } ); }
protected override void Seed(MOE.Common.Models.SPM context) { base.Seed(context); }
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")); } //} }