public PackageViewModel(DynamoViewModel dynamoViewModel, Package model) { this.dynamoViewModel = dynamoViewModel; this.dynamoModel = dynamoViewModel.Model; var pmExtension = dynamoModel.GetPackageManagerExtension(); this.packageManagerClient = pmExtension.PackageManagerClient; Model = model; ToggleTypesVisibleInManagerCommand = new DelegateCommand(() => { }, () => true); GetLatestVersionCommand = new DelegateCommand(() => { }, () => false); PublishNewPackageVersionCommand = new DelegateCommand(() => ExecuteWithTou(PublishNewPackageVersion), () => CanPublish); PublishNewPackageCommand = new DelegateCommand(() => ExecuteWithTou(PublishNewPackage), () => CanPublish); UninstallCommand = new DelegateCommand(Uninstall, CanUninstall); UnmarkForUninstallationCommand = new DelegateCommand(UnmarkForUninstallation, CanUnmarkForUninstallation); LoadCommand = new DelegateCommand(Load, CanLoad); DeprecateCommand = new DelegateCommand(Deprecate, CanDeprecate); UndeprecateCommand = new DelegateCommand(Undeprecate, CanUndeprecate); GoToRootDirectoryCommand = new DelegateCommand(GoToRootDirectory, () => true); Model.LoadedAssemblies.CollectionChanged += LoadedAssembliesOnCollectionChanged; Model.PropertyChanged += ModelOnPropertyChanged; this.dynamoModel.WorkspaceAdded += WorkspaceAdded; this.dynamoModel.WorkspaceRemoved += WorkspaceRemoved; }
private void Uninstall() { if (Model.LoadedAssemblies.Any()) { var resAssem = MessageBoxService.Show(string.Format(MessageNeedToRestart, dynamoViewModel.BrandingResourceProvider.ProductName), MessageNeedToRestartTitle, MessageBoxButton.OKCancel, MessageBoxImage.Exclamation); if (resAssem == MessageBoxResult.Cancel || resAssem == MessageBoxResult.None) { return; } } if (!Model.BuiltInPackage) { var res = MessageBoxService.Show(String.Format(Resources.MessageConfirmToDeletePackage, this.Model.Name), Resources.MessageNeedToRestartAfterDeleteTitle, MessageBoxButton.YesNo, MessageBoxImage.Question); if (res == MessageBoxResult.No || res == MessageBoxResult.None) { return; } } try { Model.UninstallCore(dynamoModel.CustomNodeManager, dynamoModel.GetPackageManagerExtension().PackageLoader, dynamoModel.PreferenceSettings); } catch (Exception) { MessageBoxService.Show(string.Format(MessageFailedToDeleteOrUnload, dynamoViewModel.BrandingResourceProvider.ProductName), MessageFailedToDeleteOrUnloadTitle, MessageBoxButton.OK, MessageBoxImage.Error); } finally { NotifyLoadStatePropertyChanged(); } }