Ejemplo n.º 1
0
 public FileBasedVisualStudioProjectFileProjectReferenceFilePathsProvider(
     IVisualStudioProjectFileProjectReferenceFilePathsProvider visualStudioProjectFileProjectReferenceFilePathsProvider,
     IVisualStudioProjectFileSerializer visualStudioProjectFileSerializer)
 {
     this.VisualStudioProjectFileProjectReferenceFilePathsProvider = visualStudioProjectFileProjectReferenceFilePathsProvider;
     this.VisualStudioProjectFileSerializer = visualStudioProjectFileSerializer;
 }
Ejemplo n.º 2
0
 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;
 }
Ejemplo n.º 3
0
        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);
                }
            }
        }
Ejemplo n.º 4
0
        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);
        }