private static string DownloadPackageByIdTest() { var nv = new PackageDownload("5225e7dde2f476ca05000057"); var response = pmc.Execute(nv); var pathDl = PackageDownload.GetFileFromResponse(response); var output = FileUtilities.UnZip(pathDl); return pathDl; }
/// <summary> /// This method downloads the package represented by the PackageDownloadHandle, /// uninstalls its current installation if necessary, and installs the package. /// /// Note that, if the package is already installed, must be uninstallable /// </summary> /// <param name="packageDownloadHandle"></param> internal void DownloadAndInstall(PackageDownloadHandle packageDownloadHandle) { var pkgDownload = new PackageDownload(packageDownloadHandle.Header._id, packageDownloadHandle.VersionName); Downloads.Add( packageDownloadHandle ); Task.Factory.StartNew(() => { try { var response = Client.Execute(pkgDownload); var pathDl = PackageDownload.GetFileFromResponse(response); dynSettings.Controller.UIDispatcher.BeginInvoke((Action) (() => { try { packageDownloadHandle.Done(pathDl); Package dynPkg; var firstOrDefault = dynSettings.PackageLoader.LocalPackages.FirstOrDefault(pkg => pkg.Name == packageDownloadHandle.Name); if (firstOrDefault != null) { try { firstOrDefault.UninstallCore(); } catch { MessageBox.Show("Dynamo failed to uninstall the package: " + packageDownloadHandle.Name + " The package may need to be reinstalled manually.", "Uninstall Failure", MessageBoxButton.OK, MessageBoxImage.Error); } } if (packageDownloadHandle.Extract(out dynPkg)) { var downloadPkg = Package.FromDirectory(dynPkg.RootDirectory); downloadPkg.Load(); dynSettings.PackageLoader.LocalPackages.Add(downloadPkg); packageDownloadHandle.DownloadState = PackageDownloadHandle.State.Installed; } } catch (Exception e) { packageDownloadHandle.Error(e.Message); } })); } catch (Exception e) { packageDownloadHandle.Error(e.Message); } }); }
internal void DownloadAndInstall(PackageDownloadHandle packageDownloadHandle) { var pkgDownload = new PackageDownload(packageDownloadHandle.Header._id, packageDownloadHandle.VersionName); Downloads.Add( packageDownloadHandle ); Task.Factory.StartNew(() => { try { var response = Client.Execute(pkgDownload); var pathDl = PackageDownload.GetFileFromResponse(response); dynSettings.Controller.UIDispatcher.BeginInvoke((Action) (() => { try { packageDownloadHandle.Done(pathDl); Package dynPkg; var firstOrDefault = dynSettings.PackageLoader.LocalPackages.FirstOrDefault(pkg => pkg.Name == packageDownloadHandle.Name); if (firstOrDefault != null) firstOrDefault.UninstallCommand.Execute(); if (packageDownloadHandle.Extract(out dynPkg)) { var downloadPkg = Package.FromDirectory(dynPkg.RootDirectory); downloadPkg.Load(); dynSettings.PackageLoader.LocalPackages.Add(downloadPkg); packageDownloadHandle.DownloadState = PackageDownloadHandle.State.Installed; } } catch (Exception e) { packageDownloadHandle.Error(e.Message); } })); } catch (Exception e) { packageDownloadHandle.Error(e.Message); } }); }
/// <summary> /// This method downloads the package represented by the PackageDownloadHandle, /// uninstalls its current installation if necessary, and installs the package. /// /// Note that, if the package is already installed, it must be uninstallable /// </summary> /// <param name="packageDownloadHandle"></param> internal void DownloadAndInstall(PackageDownloadHandle packageDownloadHandle) { var pkgDownload = new PackageDownload(packageDownloadHandle.Header._id, packageDownloadHandle.VersionName); this.Downloads.Add(packageDownloadHandle); Task.Factory.StartNew(() => { try { var response = Model.Client.Execute(pkgDownload); var pathDl = PackageDownload.GetFileFromResponse(response); dynamoViewModel.UIDispatcher.BeginInvoke((Action)(() => { try { packageDownloadHandle.Done(pathDl); Package dynPkg; var firstOrDefault = dynamoViewModel.Model.Loader.PackageLoader.LocalPackages.FirstOrDefault(pkg => pkg.Name == packageDownloadHandle.Name); if (firstOrDefault != null) { var dynModel = this.dynamoViewModel.Model; try { firstOrDefault.UninstallCore(dynModel.CustomNodeManager, dynModel.Loader.PackageLoader, dynModel.PreferenceSettings, dynModel.Logger); } catch { MessageBox.Show("Dynamo failed to uninstall the package: " + packageDownloadHandle.Name + " The package may need to be reinstalled manually.", "Uninstall Failure", MessageBoxButton.OK, MessageBoxImage.Error); } } if (packageDownloadHandle.Extract(out dynPkg)) { var downloadPkg = Package.FromDirectory(dynPkg.RootDirectory, this.dynamoViewModel.Model.Logger); var loader = dynamoViewModel.Model.Loader; var logger = dynamoViewModel.Model.Logger; var libraryServices = dynamoViewModel.Model.EngineController.LibraryServices; downloadPkg.LoadIntoDynamo(loader, logger, libraryServices); dynamoViewModel.Model.Loader.PackageLoader.LocalPackages.Add(downloadPkg); packageDownloadHandle.DownloadState = PackageDownloadHandle.State.Installed; } } catch (Exception e) { packageDownloadHandle.Error(e.Message); } })); } catch (Exception e) { packageDownloadHandle.Error(e.Message); } }); }