private void ExtractRule()

in src/Analyzer.Reports/SarifReportWriter.cs [177:197]


        private void ExtractRule(IEvaluation evaluation)
        {
            if (rulesDictionary.ContainsKey(evaluation.RuleId))
                return;

            var hasUri = Uri.TryCreate(evaluation.HelpUri, UriKind.RelativeOrAbsolute, out Uri uri);
            rulesDictionary.Add(evaluation.RuleId, new ReportingDescriptor
            {
                Id = evaluation.RuleId,
                Name = evaluation.RuleName,
                ShortDescription = new MultiformatMessageString { Text = AppendPeriod(evaluation.RuleShortDescription) },
                FullDescription = new MultiformatMessageString { Text = AppendPeriod(evaluation.RuleFullDescription) },
                Help = new MultiformatMessageString { Text = AppendPeriod(evaluation.Recommendation) },
                HelpUri = hasUri ? uri : null,
                MessageStrings = new Dictionary<string, MultiformatMessageString>()
                {
                    { "default", new MultiformatMessageString { Text = AppendPeriod(evaluation.RuleFullDescription) } }
                },
                DefaultConfiguration = new ReportingConfiguration { Level = GetLevelFromSeverity(evaluation.Severity) }
            });
        }