コード例 #1
0
        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;
        }
コード例 #2
0
        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();
            }
        }