private IEnumerable <IPackage> SearchImpl(string searchTerm, NuGetRequest nugetRequest) { if (nugetRequest == null) { yield break; } nugetRequest.Debug(Resources.Messages.SearchingRepository, "LocalPackageRepository", Source); var files = Directory.GetFiles(Source); foreach (var package in nugetRequest.FilterOnTags(files.Select(nugetRequest.GetPackageByFilePath).Where(pkgItem => pkgItem != null).Select(pkg => pkg.Package))) { yield return(package); } // look in the package source location for directories that contain nupkg files. var subdirs = Directory.EnumerateDirectories(Source, "*", SearchOption.AllDirectories); foreach (var subdir in subdirs) { var nupkgs = Directory.EnumerateFileSystemEntries(subdir, "*.nupkg", SearchOption.TopDirectoryOnly); foreach (var package in nugetRequest.FilterOnTags(nupkgs.Select(nugetRequest.GetPackageByFilePath).Where(pkgItem => pkgItem != null).Select(pkg => pkg.Package))) { yield return(package); } } }