@@ -59,13 +59,14 @@ public DependencyManager(string srcDir, IDependencyOptions options, ILogger logg
5959 this . progressMonitor . FindingFiles ( srcDir ) ;
6060
6161 packageDirectory = new TemporaryDirectory ( ComputeTempDirectory ( sourceDir . FullName ) ) ;
62-
63- this . fileContent = new FileContent ( progressMonitor , ( ) => GetFiles ( "*.*" ) ) ;
64- this . allSources = GetFiles ( "*.cs" ) . ToList ( ) ;
65- var allProjects = GetFiles ( "*.csproj" ) ;
62+ var allFiles = GetAllFiles ( ) . ToList ( ) ;
63+ var smallFiles = allFiles . SelectSmallFiles ( progressMonitor ) . SelectFileNames ( ) ;
64+ this . fileContent = new FileContent ( progressMonitor , smallFiles ) ;
65+ this . allSources = allFiles . SelectFileNamesByExtension ( ".cs" ) . ToList ( ) ;
66+ var allProjects = allFiles . SelectFileNamesByExtension ( ".csproj" ) ;
6667 var solutions = options . SolutionFile is not null
6768 ? new [ ] { options . SolutionFile }
68- : GetFiles ( "* .sln") ;
69+ : allFiles . SelectFileNamesByExtension ( " .sln") ;
6970
7071 var dllDirNames = options . DllDirs . Select ( Path . GetFullPath ) . ToList ( ) ;
7172
@@ -107,7 +108,7 @@ public DependencyManager(string srcDir, IDependencyOptions options, ILogger logg
107108 {
108109 Restore ( solutions ) ;
109110 Restore ( allProjects ) ;
110- DownloadMissingPackages ( ) ;
111+ DownloadMissingPackages ( allFiles ) ;
111112 }
112113 }
113114
@@ -136,7 +137,7 @@ public DependencyManager(string srcDir, IDependencyOptions options, ILogger logg
136137 if ( bool . TryParse ( webViewExtractionOption , out var shouldExtractWebViews ) &&
137138 shouldExtractWebViews )
138139 {
139- GenerateSourceFilesFromWebViews ( ) ;
140+ GenerateSourceFilesFromWebViews ( allFiles ) ;
140141 }
141142
142143 progressMonitor . Summary (
@@ -151,13 +152,11 @@ public DependencyManager(string srcDir, IDependencyOptions options, ILogger logg
151152 DateTime . Now - startTime ) ;
152153 }
153154
154- private void GenerateSourceFilesFromWebViews ( )
155+ private void GenerateSourceFilesFromWebViews ( List < FileInfo > allFiles )
155156 {
156157 progressMonitor . LogInfo ( $ "Generating source files from cshtml and razor files.") ;
157158
158- var views = GetFiles ( "*.cshtml" )
159- . Concat ( GetFiles ( "*.razor" ) )
160- . ToArray ( ) ;
159+ var views = allFiles . SelectFileNamesByExtension ( ".cshtml" , ".razor" ) . ToArray ( ) ;
161160
162161 if ( views . Length > 0 )
163162 {
@@ -185,15 +184,9 @@ private void GenerateSourceFilesFromWebViews()
185184
186185 public DependencyManager ( string srcDir ) : this ( srcDir , DependencyOptions . Default , new ConsoleLogger ( Verbosity . Info ) ) { }
187186
188- private IEnumerable < string > GetFiles ( string pattern , bool recurseSubdirectories = true ) =>
189- sourceDir . GetFiles ( pattern , new EnumerationOptions
190- {
191- RecurseSubdirectories = recurseSubdirectories ,
192- MatchCasing = MatchCasing . CaseInsensitive
193- } )
194- . Where ( d => d . Extension != ".dll" )
195- . Select ( d => d . FullName )
196- . Where ( d => ! options . ExcludesFile ( d ) ) ;
187+ private IEnumerable < FileInfo > GetAllFiles ( ) =>
188+ sourceDir . GetFiles ( "*.*" , new EnumerationOptions { RecurseSubdirectories = true } )
189+ . Where ( d => d . Extension != ".dll" && ! options . ExcludesFile ( d . FullName ) ) ;
197190
198191 /// <summary>
199192 /// Computes a unique temp directory for the packages associated
@@ -374,14 +367,17 @@ private void Restore(IEnumerable<string> targets, string? pathToNugetConfig = nu
374367 }
375368 }
376369
377- private void DownloadMissingPackages ( )
370+ private void DownloadMissingPackages ( List < FileInfo > allFiles )
378371 {
379- var nugetConfigs = GetFiles ( "nuget.config" , recurseSubdirectories : true ) . ToArray ( ) ;
372+ var nugetConfigs = allFiles . SelectFileNamesByName ( "nuget.config" ) . ToArray ( ) ;
380373 string ? nugetConfig = null ;
381374 if ( nugetConfigs . Length > 1 )
382375 {
383376 progressMonitor . MultipleNugetConfig ( nugetConfigs ) ;
384- nugetConfig = GetFiles ( "nuget.config" , recurseSubdirectories : false ) . FirstOrDefault ( ) ;
377+ nugetConfig = allFiles
378+ . SelectRootFiles ( sourceDir )
379+ . SelectFileNamesByName ( "nuget.config" )
380+ . FirstOrDefault ( ) ;
385381 if ( nugetConfig == null )
386382 {
387383 progressMonitor . NoTopLevelNugetConfig ( ) ;
@@ -393,8 +389,7 @@ private void DownloadMissingPackages()
393389 }
394390
395391 var alreadyDownloadedPackages = Directory . GetDirectories ( packageDirectory . DirInfo . FullName )
396- . Select ( d => Path . GetFileName ( d )
397- . ToLowerInvariant ( ) ) ;
392+ . Select ( d => Path . GetFileName ( d ) . ToLowerInvariant ( ) ) ;
398393 var notYetDownloadedPackages = fileContent . AllPackages . Except ( alreadyDownloadedPackages ) ;
399394 foreach ( var package in notYetDownloadedPackages )
400395 {
0 commit comments