Example #1
0
        internal void AddRule(Station station, Via viaRule)
        {
            Location location2 = Location.NotSet;

            if (TryGetLocation(viaRule.dest, "Destination", out var destination) &&
                TryGetLocation(viaRule.loc1, "Location1", out var location1) &&
                (string.IsNullOrEmpty(viaRule.loc2) || TryGetLocation(viaRule.loc2, "Location2", out location2)))
            {
                var rule = new ViaRule()
                {
                    At          = station,
                    Destination = destination,
                    Location1   = location1,
                    Location2   = location2,
                    Text        = viaRule.viatext
                };
                station.Add(rule);
            }

            bool TryGetLocation(string tiploc, string property, out Location location)
            {
                location = Location.NotSet;
                if (_locations.LocationsByTiploc.TryGetValue(tiploc, out location))
                {
                    return(true);
                }

                _log.Warning("Did not find {property} for via rule {@viaRule}", property, viaRule);
                return(false);
            }
        }
Example #2
0
        private static ViaRule CreateTestRule(Station at = null, Location destination = null, Location location1 = null, Location location2 = null)
        {
            var rule = new ViaRule()
            {
                At          = at ?? TestStations.Surbiton,
                Destination = destination ?? TestLocations.WaterlooMain,
                Location1   = location1 ?? TestLocations.CLPHMJN,
                Location2   = location2 ?? Location.NotSet,
                Text        = "via Test"
            };

            return(rule);
        }
        public static ViaRule CreateTestRule(Station at = null, Location destination = null, Location location1 = null, Location location2 = null, string text = "has via text")
        {
            var rule = new ViaRule()
            {
                At          = at ?? TestStations.Surbiton,
                Destination = destination ?? TestLocations.WaterlooMain,
                Location1   = location1 ?? TestLocations.Wimbledon,
                Location2   = location2 ?? Location.NotSet,
                Text        = text
            };

            return(rule);
        }