Esempio n. 1
0
        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);
                    }
                }
            }
        }
Esempio n. 3
0
        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();
        }
Esempio n. 5
0
 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));
 }
Esempio n. 6
0
 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);
 }
Esempio n. 7
0
        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);
        }