private async Task OpenPackageFromRepository(string searchTerm) { var canceled = AskToSaveCurrentFile(); if (canceled) { return; } var selectedPackageInfo = PackageChooser.SelectPackage(searchTerm); if (selectedPackageInfo == null) { return; } var repository = PackageChooser.Repository; if (repository == null) { return; } var cachePackage = MachineCache.Default.FindPackage(selectedPackageInfo.Id, selectedPackageInfo.SemanticVersion); DispatcherOperation processPackageAction(ISignaturePackage package) { LoadPackage(package, package.Source, repository.PackageSource.Source, PackageType.RemotePackage); // adding package to the cache, but with low priority return(Dispatcher.BeginInvoke( (Action <IPackage>)MachineCache.Default.AddPackage, DispatcherPriority.ApplicationIdle, package)); } if (cachePackage == null) { var downloadedPackage = await PackageDownloader.Download( repository, selectedPackageInfo.Identity); if (downloadedPackage != null) { await processPackageAction(downloadedPackage); } } else { await processPackageAction(cachePackage); } }
private void SelectDependencyButtonClicked(object sender, RoutedEventArgs e) { DiagnosticsClient.TrackEvent("PackageDependencyEditor_SelectDependencyButtonClicked"); var selectedPackage = PackageChooser.SelectPackage(null); if (selectedPackage != null) { _newPackageDependency.Id = selectedPackage.Id; _newPackageDependency.VersionSpec = VersionRange.Parse(selectedPackage.Version); } }