private IPackage TryGetPackage(IPackageRepository repository, string packageId, SemanticVersion packageVersion) { IPackage package = null; logger.LogInfo(UIResources.NG_LocatingPackages, packageId); IList <IPackage> packages = PackageRepositoryExtensions.FindPackagesById(repository, packageId).ToList(); ListPackages(packages); if (packages.Count == 0) { logger.LogError(UIResources.NG_ERROR_PackageNotFound, packageId); } else { if (packageVersion == null) { package = SelectLatestVersion(packages); } else { package = packages.FirstOrDefault(p => p.Version == packageVersion); if (package == null) { logger.LogError(UIResources.NG_ERROR_PackageVersionNotFound, packageVersion); } } } return(package); }
internal /* for testing */ static bool ShouldMergeAnalysisSettings(string language, AnalysisConfig config, Common.ILogger logger) { Debug.Assert(!string.IsNullOrEmpty(language)); Debug.Assert(config != null); // See https://github.com/SonarSource/sonar-scanner-msbuild/issues/561 // Legacy behaviour is to overwrite. // The new (SQ 7.4+) behaviour is to merge only if sonar.[LANGUAGE].roslyn.ignoreIssues is false. var serverVersion = config?.FindServerVersion(); if (serverVersion == null || serverVersion < new Version("7.4")) { logger.LogInfo(Resources.AnalyzerSettings_ExternalIssueNotSupported, SonarProduct.GetSonarProductToLog(config?.SonarQubeHostUrl)); return(false); } var settingName = $"sonar.{language}.roslyn.ignoreIssues"; var settingInFile = config.GetSettingOrDefault(settingName, includeServerSettings: true, defaultValue: "false"); if (bool.TryParse(settingInFile, out var ignoreExternalRoslynIssues)) { logger.LogDebug(Resources.AnalyzerSettings_ImportAllSettingValue, settingName, ignoreExternalRoslynIssues.ToString().ToLowerInvariant()); return(!ignoreExternalRoslynIssues); } else { logger.LogWarning(Resources.AnalyzerSettings_InvalidValueForImportAll, settingName, settingInFile); return(false); } }
public void Log(MessageLevel level, string message, params object[] args) { // Add a prefix to the message to make it easier to determine the source string prefixedMessage = LogMessagePrefix + message; switch (level) { case MessageLevel.Debug: logger.LogDebug(prefixedMessage, args); break; case MessageLevel.Error: logger.LogError(prefixedMessage, args); break; case MessageLevel.Warning: logger.LogWarning(prefixedMessage, args); break; default: logger.LogInfo(prefixedMessage, args); break; } }