Exemple #1
0
        /// <summary>
        /// Initializes a new instance of the <see cref="MsBuildIssuesProvider"/> class.
        /// </summary>
        /// <param name="log">The Cake log context.</param>
        /// <param name="settings">Settings for reading the log file.</param>
        public MsBuildIssuesProvider(ICakeLog log, MsBuildIssuesSettings settings)
            : base(log)
        {
            settings.NotNull(nameof(settings));

            this.settings = settings;
        }
        public static ICodeAnalysisProvider MsBuildIssues(
            this ICakeContext context,
            MsBuildIssuesSettings settings)
        {
            context.NotNull(nameof(context));
            settings.NotNull(nameof(settings));

            return(new MsBuildIssuesProvider(context.Log, settings));
        }
        public static ICodeAnalysisProvider MsBuildIssuesFromContent(
            this ICakeContext context,
            string logFileContent,
            ILogFileFormat format)
        {
            context.NotNull(nameof(context));
            logFileContent.NotNullOrWhiteSpace(nameof(logFileContent));
            format.NotNull(nameof(format));

            return(context.MsBuildIssues(MsBuildIssuesSettings.FromContent(logFileContent, format)));
        }
        public static ICodeAnalysisProvider MsBuildIssuesFromFilePath(
            this ICakeContext context,
            FilePath logFilePath,
            ILogFileFormat format)
        {
            context.NotNull(nameof(context));
            logFilePath.NotNull(nameof(logFilePath));
            format.NotNull(nameof(format));

            return(context.MsBuildIssues(MsBuildIssuesSettings.FromFilePath(logFilePath, format)));
        }
Exemple #5
0
        /// <inheritdoc/>
        public override IEnumerable <ICodeAnalysisIssue> ReadIssues(
            PrcaSettings prcaSettings,
            MsBuildIssuesSettings settings)
        {
            prcaSettings.NotNull(nameof(prcaSettings));
            settings.NotNull(nameof(settings));

            var result = new List <ICodeAnalysisIssue>();

            var logDocument = XDocument.Parse(settings.LogFileContent);

            // Loop through all warning tags.
            foreach (var warning in logDocument.Descendants("warning"))
            {
                // Read affected file from the warning.
                string fileName;
                if (!this.TryGetFile(warning, prcaSettings, out fileName))
                {
                    continue;
                }

                // Read affected line from the warning.
                int?line;
                if (!TryGetLine(warning, out line))
                {
                    continue;
                }

                // Read rule code from the warning.
                string rule;
                if (!TryGetRule(warning, out rule))
                {
                    continue;
                }

                result.Add(new CodeAnalysisIssue <MsBuildIssuesProvider>(
                               fileName,
                               line,
                               warning.Value,
                               0,
                               rule,
                               MsBuildRuleUrlResolver.Instance.ResolveRuleUrl(rule)));
            }

            return(result);
        }
 /// <inheritdoc/>
 public abstract IEnumerable <ICodeAnalysisIssue> ReadIssues(
     PrcaSettings prcaSettings,
     MsBuildIssuesSettings settings);