Пример #1
0
        public void MapName()
        {
            var station = TestStations.Waterloo;
            var mapper  = new StationMapper(_tocs);

            mapper.Update(station, _waterloo);
            Assert.Equal("Waterloo", station.Name);
        }
Пример #2
0
        public void MapStationOperator()
        {
            var station = TestStations.Waterloo;
            var mapper  = new StationMapper(_tocs);

            mapper.Update(station, _waterloo);
            Assert.Equal("NR", station.StationOperator.Code);
        }
Пример #3
0
        public void MapNlc()
        {
            var station = TestStations.Waterloo;
            var mapper  = new StationMapper(_tocs);

            mapper.Update(station, _waterloo);
            Assert.Equal("559800", station.Nlc);
        }
Пример #4
0
        public void MapWhenStationOperatorNotSet()
        {
            var station = TestStations.Vauxhall;
            StationStructure vauxhall = Timetable.Web.Test.Knowledgebase.TestStations.Stations.Station[1];
            var mapper = new StationMapper(_tocs);

            mapper.Update(station, vauxhall);
            Assert.Equal(Toc.Unknown, station.StationOperator);
        }
Пример #5
0
        public void MapCoordinates()
        {
            var station = TestStations.Waterloo;
            var mapper  = new StationMapper(_tocs);

            mapper.Update(station, _waterloo);
            Assert.Equal(new decimal(-0.113897), station.Coordinates.Longitude);
            Assert.Equal(new decimal(51.503507), station.Coordinates.Latitude);
        }
Пример #6
0
        public async Task <ILocationData> EnrichLocationsAsync(ILocationData locations, TocLookup lookup, CancellationToken token)
        {
            var refData = await GetReferenceData(token).ConfigureAwait(false);

            var mapper = new StationMapper(lookup, locations, _logger);

            foreach (var location in refData.LocationRef)
            {
                try
                {
                    if (ShouldUpdate(location) && locations.TryGetStation(location.crs, out var target))
                    {
                        mapper.Update(target, location);
                    }
                    else
                    {
                        _logger.Debug("Darwin Location not loaded: {tpl} : {name}", location.tpl, location.locname);
                    }
                }
                catch (Exception e)
                {
                    _logger.Warning(e, "Error updating station: {station} with Darwin data.", location.crs);
                }
            }

            foreach (var viaRule in refData.Via)
            {
                try
                {
                    if (locations.TryGetStation(viaRule.at, out var target))
                    {
                        mapper.AddRule(target, viaRule);
                    }
                }
                catch (Exception e)
                {
                    _logger.Warning(e, "Error updating station: {station} with Via rule.", viaRule.at);
                }
            }

            return(locations);

            bool ShouldUpdate(LocationRef location)
            {
                return(!string.IsNullOrEmpty(location.crs));
            }
        }
Пример #7
0
 public Worker(string filePath)
 {
     this.filePath      = filePath;
     _parser            = new Parser();
     _analogMapper      = new AnalogMapper();
     _connectionMapper  = new ConnectionMapper();
     _legacyNameMapper  = new LegacyNameMapper();
     _messageMapper     = new MessageMapper();
     _multistateMapper  = new MultistateMapper();
     _rateMapper        = new RateMapper();
     _remConnJoinMapper = new RemConnJoinMapper();
     _remoteMapper      = new RemoteMapper();
     _stationMapper     = new StationMapper();
     _statusMapper      = new StatusMapper();
     _templateMapper    = new CGLTemplateMapper();
     _CGLMapper         = new CGLMapper();
 }
Пример #8
0
        public async Task <ILocationData> UpdateLocationsWithKnowledgebaseStationsAsync(ILocationData locations,
                                                                                        TocLookup lookup, CancellationToken token)
        {
            var mapper = new StationMapper(lookup);

            StationList stations = null;

            try
            {
                stations = await _knowledgebase.GetStations(token).ConfigureAwait(false);
            }
            catch (Exception e)
            {
                _logger.Warning(e, "Error loading Knowledgebase Stations.");
            }

            if (stations == null)
            {
                return(locations);
            }

            foreach (var station in stations.Station)
            {
                try
                {
                    if (locations.TryGetStation(station.CrsCode, out var target))
                    {
                        mapper.Update(target, station);
                    }
                }
                catch (Exception e)
                {
                    _logger.Warning(e, "Error updating station: {station} with knowledgebase.", station.CrsCode);
                }
            }

            return(locations);
        }
Пример #9
0
 public StationService()
 {
     Repo   = new UnitOfWork().Stations;
     Mapper = new StationMapper(Repo);
 }