public static int CheckProject(ProgamOptions options) { var fileSystem = new FileSystem(); var globalReferencesRegistry = new ReferenceRegistry(); string[] projectFileNames = new string[0]; var severity = (ReportSeverity)Enum.Parse(typeof (ReportSeverity), options.Verbosity, true); if (!String.IsNullOrEmpty(options.GlobalReferencesFileName) && fileSystem.FileInfo.FromFileName(options.GlobalReferencesFileName).Exists) { globalReferencesRegistry = ReferenceRegistry.FromLinesInFile(options.GlobalReferencesFileName, fileSystem); } else if (options.GlobalReferences.Length > 0) { globalReferencesRegistry = ReferenceRegistry.FromReferenceNames(options.GlobalReferences); } if (!String.IsNullOrEmpty(options.ProjectFileNamesFile) && fileSystem.FileInfo.FromFileName(options.ProjectFileNamesFile).Exists) { projectFileNames = fileSystem.File.ReadAllLines(options.ProjectFileNamesFile); } else if (options.ProjectFileNames.Length > 0) { projectFileNames = options.ProjectFileNames; } var externalLibrariesDirectoryName = options.ExternalLibrariesDirectoryName; var integrity = new ProjectIntegrity(globalReferencesRegistry, externalLibrariesDirectoryName); bool hasError = projectFileNames .Select(projectFileName => OutputReports( integrity.Report(projectFileName), OutputProjectFileName, projectFileName, severity)) .Aggregate(false, (current, reports) => current || reports.Any(r => !r.IsOk)); if (!hasError && severity <= ReportSeverity.Error) { Console.WriteLine("[ Check ] All projects ok."); } return hasError ? ExitCode.Error : ExitCode.Ok; }
public BinaryReferenceIsGlobalCheck(ReferenceRegistry globalReferencesRegistry) { this.globalReferences = globalReferencesRegistry.References; }
public ProjectIntegrityCheck(IFileSystem fileSystem, ReferenceRegistry wellknownReferencesRegistry, string libDirectory) { this.refGlobal = new BinaryReferenceIsGlobalCheck(wellknownReferencesRegistry); this.refExists = new ReferenceExistsCheck(fileSystem); this.refExternal = new BinaryReferenceInExternalLibrariesDirectoryCheck(libDirectory); }