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); } }
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); }