in src/Analyzer.JsonRuleEngine/JsonRuleEngine.cs [62:94]
public void FilterRules(ConfigurationDefinition configuration)
{
if (configuration == null)
throw new ArgumentNullException(nameof(configuration));
if (configuration.InclusionsConfigurationDefinition?.Severity != null
|| configuration.InclusionsConfigurationDefinition?.Ids != null)
{
var includeSeverities = configuration.InclusionsConfigurationDefinition.Severity;
var includeIds = configuration.InclusionsConfigurationDefinition.Ids;
RuleDefinitions = RuleDefinitions.Where(r => (includeSeverities != null && includeSeverities.Contains(r.Severity)) ||
(includeIds != null && includeIds.Contains(r.Id))).ToList().AsReadOnly();
}
else if (configuration.ExclusionsConfigurationDefinition?.Severity != null
|| configuration.ExclusionsConfigurationDefinition?.Ids != null)
{
var excludeSeverities = configuration.ExclusionsConfigurationDefinition.Severity;
var excludeIds = configuration.ExclusionsConfigurationDefinition.Ids;
RuleDefinitions = RuleDefinitions.Where(r => !(excludeSeverities != null && excludeSeverities.Contains(r.Severity)) &&
!(excludeIds != null && excludeIds.Contains(r.Id))).ToList().AsReadOnly();
}
if (configuration.SeverityOverrides != null)
{
var ruleSubset = RuleDefinitions.Where(r => configuration.SeverityOverrides.Keys.Contains(r.Id));
foreach (RuleDefinition rule in ruleSubset)
{
rule.Severity = configuration.SeverityOverrides[rule.Id];
}
}
}