private string WriteSonarLintXmlFile(string language, IEnumerable <ActiveRule> activeRules)
        {
            if (string.IsNullOrWhiteSpace(language))
            {
                logger.LogDebug(Resources.RAP_AdditionalFileNameMustBeSpecified);
                return(null);
            }

            string content;

            if (language.Equals(CSharpLanguage))
            {
                content = RoslynSonarLint.GenerateXml(activeRules, sqServerSettings, language, "csharpsquid");
            }
            else
            {
                content = RoslynSonarLint.GenerateXml(activeRules, sqServerSettings, language, "vbnet");
            }

            var langDir = Path.Combine(sqSettings.SonarConfigDirectory, language);

            Directory.CreateDirectory(langDir);

            var fullPath = Path.Combine(langDir, "SonarLint.xml");

            if (File.Exists(fullPath))
            {
                logger.LogDebug(Resources.RAP_AdditionalFileAlreadyExists, language, fullPath);
                return(null);
            }

            logger.LogDebug(Resources.RAP_WritingAdditionalFile, fullPath);
            File.WriteAllText(fullPath, content);
            return(fullPath);
        }
        private bool TryWriteSonarLintXmlFile(string language, IEnumerable <SonarRule> activeRules, out string sonarLintXmlPath)
        {
            var langDir = Path.Combine(this.teamBuildSettings.SonarConfigDirectory, language);

            Directory.CreateDirectory(langDir);

            sonarLintXmlPath = Path.Combine(langDir, "SonarLint.xml");
            if (File.Exists(sonarLintXmlPath))
            {
                this.logger.LogDebug(Resources.RAP_AdditionalFileAlreadyExists, language, sonarLintXmlPath);
                return(false);
            }

            var content = RoslynSonarLint.GenerateXml(activeRules, this.sonarProperties, language);

            this.logger.LogDebug(Resources.RAP_WritingAdditionalFile, sonarLintXmlPath);
            File.WriteAllText(sonarLintXmlPath, content);
            return(true);
        }