private void AddOrUpdateAggregatedRuleSetInformation(Dictionary<string, RuleSetInformation> projectRuleSetAggregation, string baselineRuleSet, RuleSetDeclaration declaration, string projectRuleSet)
{
RuleSetInformation aggregate;
if (projectRuleSetAggregation.TryGetValue(projectRuleSet, out aggregate))
{
aggregate.ConfigurationContexts.Add(declaration.ConfigurationContext);
if (!aggregate.RuleSetDirectories.SequenceEqual(declaration.RuleSetDirectories))
{
this.WriteWarning(Strings.InconsistentRuleSetDirectoriesWarning,
CombineDirectories(declaration.RuleSetDirectories),
projectRuleSet,
CombineDirectories(aggregate.RuleSetDirectories));
}
}
else
{
aggregate = new RuleSetInformation(declaration.RuleSetProjectFullName, baselineRuleSet, projectRuleSet, declaration.RuleSetDirectories);
aggregate.ConfigurationContexts.Add(declaration.ConfigurationContext);
projectRuleSetAggregation[projectRuleSet] = aggregate;
}
}