internal void UninstallCore(CustomNodeManager customNodeManager, PackageLoader packageLoader, IPreferences prefs) { if (LoadedAssemblies.Any()) { MarkForUninstall(prefs); return; } try { LoadedCustomNodes.ToList().ForEach(x => customNodeManager.Remove(x.FunctionId)); if (BuiltInPackage) { LoadState.SetAsUnloaded(); RaisePropertyChanged(nameof(LoadState)); if (!prefs.PackageDirectoriesToUninstall.Contains(RootDirectory)) { prefs.PackageDirectoriesToUninstall.Add(RootDirectory); } } else { packageLoader.Remove(this); Directory.Delete(RootDirectory, true); } } catch (Exception e) { Log("Exception when attempting to uninstall the package " + Name + " from " + RootDirectory); Log(e.GetType() + ": " + e.Message); throw; } }
internal void UninstallCore(CustomNodeManager customNodeManager, PackageLoader packageLoader, IPreferences prefs) { if (LoadedAssemblies.Any()) { MarkForUninstall(prefs); return; } try { LoadedCustomNodes.ToList().ForEach(x => customNodeManager.Remove(x.FunctionId)); packageLoader.Remove(this); Directory.Delete(RootDirectory, true); } catch (Exception e) { Log("Exception when attempting to uninstall the package " + Name + " from " + RootDirectory); Log(e.GetType() + ": " + e.Message); throw; } }
internal bool InUse(DynamoModel dynamoModel) { return((LoadedAssemblies.Any() || IsWorkspaceFromPackageOpen(dynamoModel) || IsCustomNodeFromPackageInUse(dynamoModel)) && Loaded); }