public FileBasedVisualStudioProjectFileProjectReferenceFilePathsProvider( IVisualStudioProjectFileProjectReferenceFilePathsProvider visualStudioProjectFileProjectReferenceFilePathsProvider, IVisualStudioProjectFileSerializer visualStudioProjectFileSerializer) { this.VisualStudioProjectFileProjectReferenceFilePathsProvider = visualStudioProjectFileProjectReferenceFilePathsProvider; this.VisualStudioProjectFileSerializer = visualStudioProjectFileSerializer; }
public Program(IApplicationLifetime applicationLifetime, IServiceProvider serviceProvider, ITemporaryDirectoryFilePathProvider temporaryDirectoryFilePathProvider, ITestingDataDirectoryContentPathsProvider testingDataDirectoryContentPathsProvider, IVisualStudioProjectFileSerializer visualStudioProjectFileSerializer) : base(applicationLifetime) { this.ServiceProvider = serviceProvider; this.TemporaryDirectoryFilePathProvider = temporaryDirectoryFilePathProvider; this.TestingDataDirectoryContentPathsProvider = testingDataDirectoryContentPathsProvider; this.VisualStudioProjectFileSerializer = visualStudioProjectFileSerializer; }
private static async Task AccumulateDependencyProjectFilePathsRecursive(this IVisualStudioProjectFile visualStudioProjectFile, IVisualStudioProjectFileSerializer visualStudioProjectFileSerializer, HashSet <string> pathAccumulator) { var dependencyProjectFilePaths = visualStudioProjectFile.GetDependencyProjectFilePaths(); foreach (var projectFilePath in dependencyProjectFilePaths) { // Avoid deserializing the same project file multiple times by testing whether the project file has been visited or not. if (!pathAccumulator.Contains(projectFilePath)) { pathAccumulator.Add(projectFilePath); var projectFile = await visualStudioProjectFileSerializer.DeserializeAsync(projectFilePath); await projectFile.AccumulateDependencyProjectFilePathsRecursive(visualStudioProjectFileSerializer, pathAccumulator); } } }
public static async Task <List <string> > GetDependencyProjectFilePathsRecursive(this IVisualStudioProjectFile visualStudioProjectFile, IVisualStudioProjectFileSerializer visualStudioProjectFileSerializer) { var pathAccumulator = new HashSet <string>(); await visualStudioProjectFile.AccumulateDependencyProjectFilePathsRecursive(visualStudioProjectFileSerializer, pathAccumulator); var dependencyProjectFilePaths = pathAccumulator .OrderBy(x => x) .ToList(); return(dependencyProjectFilePaths); }