public async Task <IEnumerable <PackagesFileResult <IPackage> > > ParseDirectoryAsync(string directoryPath) { DirectoryInfo dirInfo = new DirectoryInfo(directoryPath); List <PackagesFileResult <IPackage> > result = new List <PackagesFileResult <IPackage> >(); var files = dirInfo.EnumerateFiles("packages.config", SearchOption.AllDirectories); foreach (var file in files) { var item = await ParseFileAsync(file.FullName); result.Add(item); } files = dirInfo.EnumerateFiles("*.csproj", SearchOption.AllDirectories); foreach (var file in files) { var item = await ParseFileAsync(file.FullName); result.Add(item); } PackagesFileResult <IPackage> uiFrameworks = await ParseUiFrameworksAsync(dirInfo); result.Add(uiFrameworks); return(result); }
public static PackagesFileResult <T> As <T>(this PackagesFileResult <IPackage> item) where T : IPackage { return(new PackagesFileResult <T> { FileName = item.FileName, Packages = item.Packages.Select(p => (T)p).ToList() }); }
public async Task <ActionResult> ParseFile(HttpPostedFileBase file) { var service = new GetPackagesService(_nuGetPackagesRepository, _uiLibraryPackageRepository); PackagesFileResult <IPackage> result = null; using (TemporaryFile tempFile = new TemporaryFile()) { file.SaveAs(tempFile.FileName); result = await service.ParseFileAsync(tempFile.FileName, file.FileName); } var builder = new ParseResultViewModelBuilder(); var viewModel = builder.Build(new[] { result }); return(View(_outputView, viewModel)); }