private RequireMap GetMap(JObject document) { var map = new RequireMap(); map.MapElements = new List <RequireMapElement>(); if (document != null && document["map"] != null) { map.MapElements = document["map"].Select( r => { var currentMap = new RequireMapElement(); currentMap.Replacements = new List <RequireReplacement>(); var prop = (JProperty)r; currentMap.For = prop.Name; var mapDefinition = prop.Value; if (mapDefinition != null) { currentMap.Replacements = mapDefinition.Select(x => new RequireReplacement() { OldKey = ((JProperty)x).Name, NewKey = ((JProperty)x).Value.ToString() }).ToList(); } return(currentMap); }) .ToList(); } return(map); }
private RequireMap GetMap(JObject document) { var map = new RequireMap(); map.MapElements = new List <RequireMapElement>(); string parseSection = "map"; if (document != null && document[parseSection] != null) { JToken mapParent = JsonParseOrThrow <JObject>(document[parseSection], parseSection, Path, null); map.MapElements = mapParent.Select( r => { var currentMap = new RequireMapElement(); currentMap.Replacements = new List <RequireReplacement>(); var prop = (JProperty)r; currentMap.For = prop.Name; JToken mapDefinition = JsonParseOrThrow <JObject>(prop.Value, parseSection, Path, null); if (mapDefinition != null) { currentMap.Replacements = mapDefinition.Select(x => new RequireReplacement() { OldKey = ((JProperty)x).Name, NewKey = ((JProperty)x).Value.ToString() }).ToList(); } return(currentMap); }) .ToList(); } return(map); }
private RequireMap GetMap(XElement root) { var map = new RequireMap(); map.MapElements = new List <RequireMapElement>(); var mapEl = root.Element("map"); if (mapEl != null) { map.MapElements = mapEl.Descendants("replace") .Select(MapElementReader) .ToList(); } return(map); }
// TODO: these functions are very similar to the merge ones in ConfigMerger, // maybe do something about this private void ApplyMapOverride(RequireMap originalMap, RequireMap overrideMap) { foreach (var mapEl in overrideMap.MapElements) { var existing = originalMap.MapElements.Where(r => r.For.ToLower() == mapEl.For.ToLower()).FirstOrDefault(); if (existing != null) { var finalReplacements = existing.Replacements .Union(mapEl.Replacements) .GroupBy(r => r.OldKey) .Select(r => r.FirstOrDefault()) .ToList(); existing.Replacements = finalReplacements; } else { originalMap.MapElements.Add(mapEl); } } }
private RequireMap GetMap(XElement root) { var map = new RequireMap(); map.MapElements = new List <RequireMapElement>(); var mapEl = root.Descendants("map").FirstOrDefault(); if (mapEl != null) { map.MapElements = mapEl.Descendants("replace") .Select(r => new RequireMapElement { For = r.Attribute("for").Value, Replacements = r.Descendants("add") .Select(x => new RequireReplacement { NewKey = x.Attribute("new").Value, OldKey = x.Attribute("old").Value }).ToList() }).ToList(); } return(map); }