Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 4
0
        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));
            }
        }
Ejemplo n.º 5
0
        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));
            }
        }
Ejemplo n.º 7
0
        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);
        }
Ejemplo n.º 8
0
 public void CollectFrom(CollectorContext context)
 {
     CollectMapsFrom(context, "Map 1:50k", 1d / 50000);
     CollectMapsFrom(context, "Map 1:25k", 1d / 25000);
 }