示例#1
0
 public ProjectsVerifier(ISolutionCopConsole logger, IBuildServerReporter buildServerReporter)
 {
     _logger = logger;
     _buildServerReporter     = buildServerReporter;
     _configurationFileParser = new ConfigurationFileParser(logger);
     _rulesDirectoryCatalog   = new RulesDirectoryCatalog(logger);
 }
示例#2
0
        public static SolutionInfo LoadFromFile(ISolutionCopConsole console, string pathToSolutionFile)
        {
            if (!new FileInfo(pathToSolutionFile).Exists)
            {
                console.LogError("Cannot find solution file {0}", pathToSolutionFile);
                return(new SolutionInfo());
            }

            console.LogInfo("Parsing solution {0}", pathToSolutionFile);
            var solutionFileLines     = File.ReadAllLines(pathToSolutionFile).ToArray();
            var projectReferenceRegEx = new Regex("Project\\(\"([\\{\\}0-9A-Z\\-]+)\"\\) = \"(.*)\", \"(.*.csproj)\", \"([\\{\\}0-9A-Z\\-]+)\"\\s*");
            var projectRelativePaths  = solutionFileLines.Select(line => projectReferenceRegEx.Match(line)).Where(x => x.Success).Select(x => x.Groups[3].ToString());
            var projectPaths          = projectRelativePaths.Select(x => Path.Combine(Path.GetDirectoryName(pathToSolutionFile), x));

            return(new SolutionInfo(projectPaths.ToArray()));
        }
 public ConfigurationFileParser(ISolutionCopConsole logger)
     : this(File.WriteAllBytes, logger)
 {
 }
 // Constructor is used for testing
 internal ConfigurationFileParser(Action <string, byte[]> saveConfigFileAction, ISolutionCopConsole logger)
 {
     _saveConfigFileAction = saveConfigFileAction;
     _logger = logger;
 }
示例#5
0
 public RulesDirectoryCatalog(ISolutionCopConsole logger)
 {
     _logger = logger;
 }