internal async Task DownloadAndOpenDataServicePackage(string packageUrl, string id = null, NuGet.SemanticVersion version = null) { if (!NetworkInterface.GetIsNetworkAvailable()) { UIServices.Show( StringResources.NoNetworkConnection, MessageLevel.Warning); return; } Uri downloadUrl; if (Uri.TryCreate(packageUrl, UriKind.Absolute, out downloadUrl) && downloadUrl.IsRemoteUri()) { IPackage downloadedPackage = await PackageDownloader.Download(downloadUrl, id, version.ToString()); if (downloadedPackage != null) { LoadPackage(downloadedPackage, packageUrl, PackageType.DataServicePackage); } } else { UIServices.Show( String.Format( CultureInfo.CurrentCulture, StringResources.Dialog_InvalidPackageUrl, packageUrl), MessageLevel.Error ); } }
private async void OnPackageDownloadRequested(object sender, EventArgs e) { PackageInfo packageInfo = _viewModel.SelectedPackage; if (packageInfo != null) { string selectedFilePath; int selectedIndex; string packageName = packageInfo.Id + "." + packageInfo.Version.ToString() + NuGetPe.Constants.PackageExtension; string title = "Save " + packageName; const string filter = "NuGet package file (*.nupkg)|*.nupkg|All files (*.*)|*.*"; bool accepted = UIServices.OpenSaveFileDialog( title, packageName, null, filter, overwritePrompt: true, selectedFilePath: out selectedFilePath, selectedFilterIndex: out selectedIndex); if (accepted) { if (selectedIndex == 1 && !selectedFilePath.EndsWith(NuGetPe.Constants.PackageExtension, StringComparison.OrdinalIgnoreCase)) { selectedFilePath += NuGetPe.Constants.PackageExtension; } await PackageDownloader.Download(selectedFilePath, packageInfo.DownloadUrl, packageInfo.Id, packageInfo.Version); } } }
private async void OnPackageDownloadRequested(object sender, EventArgs e) { var repository = _viewModel.ActiveRepository; var packageInfo = _viewModel.SelectedPackage; if (packageInfo != null) { var packageName = packageInfo.Id + "." + packageInfo.Version + NuGetPe.Constants.PackageExtension; var title = "Save " + packageName; const string filter = "NuGet package file (*.nupkg)|*.nupkg|NuGet Symbols package file (*.snupkg)|*.snupkg|All files (*.*)|*.*"; var accepted = UIServices.OpenSaveFileDialog( title, packageName, null, filter, overwritePrompt: true, selectedFilePath: out var selectedFilePath, selectedFilterIndex: out var selectedIndex); if (accepted) { if (selectedIndex == 1 && !selectedFilePath.EndsWith(NuGetPe.Constants.PackageExtension, StringComparison.OrdinalIgnoreCase)) { selectedFilePath += NuGetPe.Constants.PackageExtension; } await PackageDownloader.Download(selectedFilePath, repository, packageInfo.Identity); } } }
internal async Task DownloadAndOpenDataServicePackage(string packageUrl, string id = null, NuGetVersion version = null) { if (!NetworkInterface.GetIsNetworkAvailable()) { UIServices.Show( StringResources.NoNetworkConnection, MessageLevel.Warning); return; } if (id != null && version != null && Uri.TryCreate(packageUrl, UriKind.Absolute, out var downloadUrl)) { var repository = PackageRepositoryFactory.CreateRepository(packageUrl); var packageIdentity = new NuGet.Packaging.Core.PackageIdentity(id, version); var downloadedPackage = await PackageDownloader.Download(repository, packageIdentity); if (downloadedPackage != null) { LoadPackage(downloadedPackage, packageUrl, PackageType.RemotePackage); } } else { UIServices.Show( string.Format( CultureInfo.CurrentCulture, StringResources.Dialog_InvalidPackageUrl, packageUrl), MessageLevel.Error ); } }
private async Task OpenPackageFromRepository(string searchTerm) { var canceled = AskToSaveCurrentFile(); if (canceled) { return; } var selectedPackageInfo = PackageChooser.SelectPackage(searchTerm); if (selectedPackageInfo == null) { return; } if (selectedPackageInfo.IsLocalPackage) { await OpenLocalPackage(selectedPackageInfo.DownloadUrl.LocalPath); } else { var packageVersion = new NuGetVersion(selectedPackageInfo.Version); var cachePackage = MachineCache.Default.FindPackage(selectedPackageInfo.Id, packageVersion); DispatcherOperation processPackageAction(ISignaturePackage package) { var servicePackage = selectedPackageInfo.AsDataServicePackage(); servicePackage.CorePackage = package; LoadPackage(servicePackage, selectedPackageInfo.DownloadUrl.ToString(), PackageType.DataServicePackage); // adding package to the cache, but with low priority return(Dispatcher.BeginInvoke( (Action <IPackage>)MachineCache.Default.AddPackage, DispatcherPriority.ApplicationIdle, package)); } if (cachePackage == null || cachePackage.GetHash() != selectedPackageInfo.PackageHash) { var downloadedPackage = await PackageDownloader.Download( selectedPackageInfo.DownloadUrl, selectedPackageInfo.Id, packageVersion.ToString()); if (downloadedPackage != null) { await processPackageAction(downloadedPackage); } } else { await processPackageAction(cachePackage); } } }
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 async void OnPackageDownloadRequested(object sender, EventArgs e) { DiagnosticsClient.TrackEvent("PackageChooserService_OnPackageDownloadRequested"); var vm = (PackageChooserViewModel)sender; var repository = vm.ActiveRepository; var packageInfo = vm.SelectedPackage; if (packageInfo != null && repository != null) { var packageName = packageInfo.Id + "." + packageInfo.Version + NuGetPe.Constants.PackageExtension; var title = "Save " + packageName; const string filter = "NuGet package file (*.nupkg)|*.nupkg|NuGet Symbols package file (*.snupkg)|*.snupkg|All files (*.*)|*.*"; var accepted = UIServices.OpenSaveFileDialog( title, packageName, null, filter, overwritePrompt: true, selectedFilePath: out var selectedFilePath, selectedFilterIndex: out var selectedIndex); if (accepted) { if (selectedIndex == 1 && !selectedFilePath.EndsWith(NuGetPe.Constants.PackageExtension, StringComparison.OrdinalIgnoreCase)) { selectedFilePath += NuGetPe.Constants.PackageExtension; } else if (selectedIndex == 2 && !selectedFilePath.EndsWith(NuGetPe.Constants.SymbolPackageExtension, StringComparison.OrdinalIgnoreCase)) { selectedFilePath += NuGetPe.Constants.SymbolPackageExtension; } try { await PackageDownloader.Download(selectedFilePath, repository, packageInfo.Identity); } catch (Exception ex) { UIServices.Show(ex.Message, MessageLevel.Error); } } } }