static void ParseRulesProvider(NestingRulesProvider provider, NestingRuleKind kind, JObject jobj) { if (jobj == null) { // Fallback to create an empty rule for this NestingRuleKind provider.AddRule(kind, NestingRule.AllFilesWildcard, Array.Empty <string> ()); return; } foreach (var prop in jobj.Properties()) { if (prop.Value.Type == JTokenType.Array) { provider.AddRule(kind, prop.Name, (prop.Value as JArray).Select(x => x.Value <string> ())); } } }
void AddRule(NestingRuleKind kind, string appliesTo, IEnumerable <string> patterns) { nestingRules.Add(new NestingRule(kind, appliesTo, patterns)); LoggingService.LogInfo($"Added nesting rule of type {kind} for {appliesTo} on files [{String.Join (", ", patterns)}]"); }
public NestingRule(NestingRuleKind kind, string appliesTo, IEnumerable <string> patterns) { Kind = kind; AppliesTo = appliesTo ?? AllFilesWildcard; this.patterns = patterns?.ToList() ?? new List <string> (); }