/// <summary>
/// Download and install a specific package from the package manager
/// </summary>
/// <param name="packageInfo"></param>
/// <param name="downloadPath"></param>
public void DownloadAndInstallPackage(IPackageInfo packageInfo, string downloadPath = null)
{
// User needs to accept terms of use before any packages can be downloaded from package manager
var prefSettings = DynamoViewModel.Model.PreferenceSettings;
var touAccepted = prefSettings.PackageDownloadTouAccepted;
if (!touAccepted)
{
touAccepted = TermsOfUseHelper.ShowTermsOfUseDialog(false, null);
prefSettings.PackageDownloadTouAccepted = touAccepted;
if (!touAccepted)
{
return;
}
}
// Try to get the package version for this package
PackageVersion version;
try
{
version = Model.GetPackageVersionHeader(packageInfo);
}
catch
{
MessageBox.Show(
string.Format(Resources.MessagePackageVersionNotFound, packageInfo.Version.ToString(), packageInfo.Name),
Resources.PackageDownloadErrorMessageBoxTitle,
MessageBoxButton.OK,
MessageBoxImage.Error);
return;
}
ExecutePackageDownload(packageInfo.Name, version, downloadPath);
}