private void SetParent(CollectorContext context) { var parentSmcId = context.Raw["Parent (SMC)"]; var parentMaId = context.Raw["Parent (Ma)"]; var parentId = int.Parse(string.IsNullOrWhiteSpace(parentSmcId) ? parentMaId : parentSmcId); var hasNoParent = parentId == 0; if (hasNoParent) { return; } var hasSelfAsParent = parentId == context.Mountain.DobihId; if (hasSelfAsParent) { return; } if (!_mountainsByDobihId.ContainsKey(parentId)) { return; } context.Mountain.Parent = new MountainSummary(_mountainsByDobihId[parentId]); }
public void CollectFrom(CollectorContext context) { foreach (var collector in _collectors) { collector.CollectFrom(context); } }
public void CollectFrom(CollectorContext context) { var key = context.Raw["County"]; if (!_items.TryGetValue(key, out var county)) { county = new County { Name = context.Raw["County"] }; _items.Add(key, county); } context.Mountain.County = new CountySummary(county); }
private void CollectMapsFrom(CollectorContext context, string field, double scale) { foreach (var key in context.Raw[field].Split(' ', StringSplitOptions.RemoveEmptyEntries)) { if (!_items.TryGetValue(key, out var map)) { map = new Map { Code = key, Scale = scale }; _items.Add(key, map); } context.Mountain.Maps.Add(new MapSummary(map)); } }
public void CollectFrom(CollectorContext context) { var key = context.Raw["Region"]; if (!_items.TryGetValue(key, out var region)) { var split = key.Split(':', StringSplitOptions.RemoveEmptyEntries); var code = split[0].Trim(); var name = split[1].Trim(); region = new Region { Code = code, Name = name }; _items.Add(key, region); } context.Mountain.Region = new RegionSummary(region); }
public void CollectFrom(CollectorContext context) { var keys = context.Raw .Where(x => _nameLookup.ContainsKey(x.Key) && x.Value == "1") .Select(x => x.Key); foreach (var key in keys) { if (!_nameLookup.ContainsKey(key)) { continue; } if (!_items.TryGetValue(key, out var classification)) { classification = _nameLookup[key]; _items.Add(key, classification); } classification.Mountains.Add(new NumberedMountainSummary(context.Mountain)); context.Mountain.Classifications.Add(new ClassificationSummary(classification)); } }
public void CollectFrom(CollectorContext context) { var nameAndAliases = GetNameAndAliases(context.Raw["Name"]); context.Mountain.Name = nameAndAliases.Item1; context.Mountain.Aliases = nameAndAliases.Item2; context.Mountain.Location = new Location { Type = "Point", Coordinates = new[] { double.Parse(context.Raw["Longitude"]), double.Parse(context.Raw["Latitude"]) } }; context.Mountain.GridRef = context.Raw["Grid ref"]; context.Mountain.Height = new Height { Metres = double.Parse(context.Raw["Metres"]) }; context.Mountain.Prominence = new Prominence { Metres = double.Parse(context.Raw["Drop"]), MeasuredFrom = context.Raw["Col grid ref"], MeasuredFromHeight = new Height { Metres = double.Parse(context.Raw["Col height"]) } }; context.Mountain.Features = context.Raw["Feature"]; context.Mountain.Observations = context.Raw["Observations"]; context.Mountain.DobihId = int.Parse(context.Raw["Number"]); SetParent(context); _mountainsByDobihId.Add(context.Mountain.DobihId, context.Mountain); }
public void CollectFrom(CollectorContext context) { CollectMapsFrom(context, "Map 1:50k", 1d / 50000); CollectMapsFrom(context, "Map 1:25k", 1d / 25000); }