public static async Task<HashSet<RuleUsage>> ResolveAsync(IEnumerable<RawRuleUsage> rawUsageData) { var allRules = await GetAllRulesAsync(); var result = new HashSet<RuleUsage>(); foreach (var dataPoint in rawUsageData) { var selector = StandardizeSelector(dataPoint.Selector); var locations = new HashSet<SourceLocation>(dataPoint.SourceLocations.Where(x => x != null)); foreach (var match in allRules.Where(x => x.IsMatch(selector))) { var ruleUsage = new RuleUsage { Rule = match }; ruleUsage.SourceLocations.UnionWith(locations); result.Add(ruleUsage); } } return result; }
internal static HashSet<RuleUsage> Resolve(IEnumerable<RawRuleUsage> rawUsageData) { var allRules = AmbientRuleContext.GetAllRules(); var result = new HashSet<RuleUsage>(); foreach (var dataPoint in rawUsageData) { var selector = StandardizeSelector(dataPoint.Selector); var locations = new HashSet<SourceLocation>(dataPoint.SourceLocations.Where(x => x != null)); foreach (var match in allRules.Where(x => x.IsMatch(selector))) { var ruleUsage = new RuleUsage { Rule = match }; ruleUsage.SourceLocations.UnionWith(locations); result.Add(ruleUsage); } } return result; }