public void Initialize() { Db.ClearTables(); Db.PopulateSignal(); Db.PopulateSignalsWithApproaches(); Db.PopulateApproachesWithDetectors(); var signals = Db.Signals; foreach (var signal in signals) { Db.PopulatePreemptAggregations(Convert.ToDateTime("1/1/2016"), Convert.ToDateTime("1/1/2018"), signal.SignalID, signal.VersionID); } ApproachRepositoryFactory.SetApproachRepository(new InMemoryApproachRepository(Db)); PreemptAggregationDatasRepositoryFactory.SetArchivedMetricsRepository( new InMemoryPreemptAggregationDatasRepository(Db)); MOE.Common.Models.Repositories.SignalsRepositoryFactory.SetSignalsRepository( new InMemorySignalsRepository(Db)); MetricTypeRepositoryFactory.SetMetricsRepository(new InMemoryMetricTypeRepository(Db)); ApplicationEventRepositoryFactory.SetApplicationEventRepository(new InMemoryApplicationEventRepository(Db)); DetectorAggregationsRepositoryFactory.SetDetectorAggregationRepository(new InMemoryDetectorAggregationsRepository(Db)); Models.Repositories.DirectionTypeRepositoryFactory.SetDirectionsRepository( new InMemoryDirectionTypeRepository()); SignalsRepository = SignalsRepositoryFactory.Create(); PreemptAggregationDatasRepositoryFactory.SetArchivedMetricsRepository(new InMemoryPreemptAggregationDatasRepository(Db)); }
private void RemoveApproachesByFilter(FilterSignal filterSignal, Models.Signal signal) { RemoveApproachesFromSignalByDirection(signal); RemoveDetectorsFromSignalByMovement(signal); var approachRepository = ApproachRepositoryFactory.Create(); var excludedApproachIds = filterSignal.FilterApproaches.Where(f => f.Exclude).Select(f => f.ApproachId).ToList(); var excludedApproaches = approachRepository.GetApproachesByIds(excludedApproachIds); foreach (var excludedApproach in excludedApproaches) { var approachesToExclude = signal.Approaches.Where(a => a.DirectionTypeID == excludedApproach.DirectionTypeID && a.ProtectedPhaseNumber == excludedApproach.ProtectedPhaseNumber && a.PermissivePhaseNumber == excludedApproach.PermissivePhaseNumber && a.IsPermissivePhaseOverlap == excludedApproach.IsPermissivePhaseOverlap && a.IsProtectedPhaseOverlap == excludedApproach.IsProtectedPhaseOverlap) .ToList(); foreach (var approachToExclude in approachesToExclude) { signal.Approaches.Remove(approachToExclude); } foreach (var approach in signal.Approaches) { foreach (var filterApproach in filterSignal.FilterApproaches.Where(f => !f.Exclude)) { RemoveDetectorsFromApproachByFilter(filterApproach, approach); } } } }
private static List <RouteSignal> CreateRouteSignals(OldRoute oldRoute, Route newRoute, SPM db) { List <RouteSignal> signals = new List <RouteSignal>(); IApproachRepository appRepo = ApproachRepositoryFactory.Create(db); foreach (var detail in oldRoute.Details) { var approach = appRepo.GetApproachByApproachID(detail.ApproachId); RouteSignal signal = new RouteSignal(); signal.Route = newRoute; signal.Order = detail.Order; signal.SignalId = approach.SignalID; signal.PhaseDirections = CreateRoutePhaseDirections(signal, detail, approach, db); signals.Add(signal); } return(signals); }
public SignalAggregationCreateMetricTestsBase() { Db.ClearTables(); Db.PopulateSignal(); Db.PopulateSignalsWithApproaches(); Db.PopulateApproachesWithDetectors(); MOE.Common.Models.Repositories.SignalsRepositoryFactory.SetSignalsRepository(new InMemorySignalsRepository(Db)); MetricTypeRepositoryFactory.SetMetricsRepository(new InMemoryMetricTypeRepository(Db)); ApplicationEventRepositoryFactory.SetApplicationEventRepository(new InMemoryApplicationEventRepository(Db)); Common.Models.Repositories.DirectionTypeRepositoryFactory.SetDirectionsRepository(new InMemoryDirectionTypeRepository()); ApproachRepositoryFactory.SetApproachRepository(new InMemoryApproachRepository(Db)); MOE.Common.Models.Repositories.ApproachEventCountAggregationRepositoryFactory.SetRepository (new InMemoryApproachEventCountAggregationRepository(Db)); MOE.Common.Models.Repositories.SignalEventCountAggregationRepositoryFactory.SetRepository (new InMemorySignalEventCountAggregationRepository(Db)); SetSpecificAggregateRepositoriesForTest(); }
public void Initialize() { db.ClearTables(); XmlToListImporter.LoadControllerEventLog("7185_10_17_2017.xml", db); XmlToListImporter.LoadSignals("signals.xml", db); XmlToListImporter.LoadApproaches("approachesfor7185.xml", db); XmlToListImporter.LoadDetectors("detectorsFor7185.xml", db); XmlToListImporter.AddDetectionTypesToDetectors ("DetectorTypesforDetectorsFor7185.xml", db); XmlToListImporter.AddDetectionTypesToMetricTypes("mtdt.xml", db); MOE.Common.Models.Repositories.SignalsRepositoryFactory.SetSignalsRepository( new InMemorySignalsRepository(db)); MetricTypeRepositoryFactory.SetMetricsRepository(new InMemoryMetricTypeRepository(db)); ApplicationEventRepositoryFactory.SetApplicationEventRepository( new InMemoryApplicationEventRepository(db)); Models.Repositories.DirectionTypeRepositoryFactory.SetDirectionsRepository( new InMemoryDirectionTypeRepository()); ApproachRepositoryFactory.SetApproachRepository(new InMemoryApproachRepository(db)); ControllerEventLogRepositoryFactory.SetRepository(new InMemoryControllerEventLogRepository(db)); DetectorRepositoryFactory.SetDetectorRepository(new InMemoryDetectorRepository(db)); }
public static void InitializeTestDataFor7185Feb012018(InMemoryMOEDatabase db) { db.ClearTables(); XmlToListImporter.LoadControllerEventLog("7185Events02_01_2018.Xml", db); XmlToListImporter.LoadSignals("signals.xml", db); XmlToListImporter.LoadApproaches("approachesfor7185.xml", db); XmlToListImporter.LoadDetectors("detectorsFor7185.xml", db); XmlToListImporter.AddDetectionTypesToDetectors ("DetectorTypesforDetectorsFor7185.xml", db); XmlToListImporter.AddDetectionTypesToMetricTypes("mtdt.xml", db); MOE.Common.Models.Repositories.SignalsRepositoryFactory.SetSignalsRepository( new InMemorySignalsRepository(db)); MetricTypeRepositoryFactory.SetMetricsRepository(new InMemoryMetricTypeRepository(db)); ApplicationEventRepositoryFactory.SetApplicationEventRepository( new InMemoryApplicationEventRepository(db)); DirectionTypeRepositoryFactory.SetDirectionsRepository( new InMemoryDirectionTypeRepository()); SpeedEventRepositoryFactory.SetSignalsRepository(new InMemorySpeedEventRepository(db)); ApproachRepositoryFactory.SetApproachRepository(new InMemoryApproachRepository(db)); ControllerEventLogRepositoryFactory.SetRepository(new InMemoryControllerEventLogRepository(db)); DetectorRepositoryFactory.SetDetectorRepository(new InMemoryDetectorRepository(db)); XmlToListImporter.LoadSpeedEvents("7185speed.xml", db); }
public static Approach CopyApproach(int approachIDToCopy) { var approachRepository = ApproachRepositoryFactory.Create(); var approachToCopy = approachRepository.GetApproachByApproachID(approachIDToCopy); var newApproach = CopyApproachCommonProperties(approachToCopy, false); if (approachToCopy.Detectors != null) { foreach (var d in approachToCopy.Detectors) { var dForNewApproach = Detector.CopyDetector(d.ID, true); //need to increase DetChannel if not copying the whole signal. newApproach.Detectors.Add(dForNewApproach); } if (newApproach.Detectors.Count > 1) { newApproach = SetDetChannelWhenMultipleDetectorsExist(newApproach); } } return(newApproach); }