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; } }
private void LoadCustomNodesIntoDynamo(CustomNodeManager loader, bool isTestMode) { foreach (var info in loader.AddUninitializedCustomNodesInPath(CustomNodeDirectory, isTestMode)) { LoadedCustomNodes.Add(info); } }
internal void RefreshCustomNodesFromDirectory(CustomNodeManager customNodeManager, bool isTestMode) { LoadedCustomNodes.Clear(); foreach (var x in customNodeManager.AddUninitializedCustomNodesInPath(CustomNodeDirectory, isTestMode)) { LoadedCustomNodes.Add(x); } }
private bool IsCustomNodeFromPackageInUse(DynamoModel dynamoModel) { // get all of the function ids from the custom nodes in this package var guids = LoadedCustomNodes.Select(x => x.Guid); // check if any of the custom nodes is in a workspace return(dynamoModel.AllNodes.Where(x => x is Function) .Cast <Function>() .Any(x => guids.Contains(x.Definition.FunctionId))); }
public bool CustomNodeInWorkspace() { // get all of the function ids from the custom nodes in this package var guids = LoadedCustomNodes.Select(x => x.Guid); // check if any of the custom nodes is in a workspace return(dynSettings.Controller.DynamoModel.AllNodes.Where(x => x is Function) .Cast <Function>() .Any(x => guids.Contains(x.Definition.FunctionId))); }
private bool IsCustomNodeFromPackageInUse(DynamoModel dynamoModel) { // get all of the function ids from the custom nodes in this package var guids = LoadedCustomNodes.Select(x => x.FunctionId); // check if any of the custom nodes is in a workspace return (dynamoModel.Workspaces.SelectMany(ws => ws.Nodes.OfType <Function>()) .Any(x => guids.Contains(x.Definition.FunctionId))); }
private void LoadCustomNodesIntoDynamo(LoadPackageParams loadPackageParams) { var loader = loadPackageParams.CustomNodeManager; var isTestMode = loadPackageParams.IsTestMode; foreach (var info in loader.AddUninitializedCustomNodesInPath(CustomNodeDirectory, isTestMode)) { LoadedCustomNodes.Add(info); } }
private bool IsWorkspaceFromPackageOpen(DynamoModel dynamoModel) { // get all of the function ids from the custom nodes in this package var guids = new HashSet <Guid>(LoadedCustomNodes.Select(x => x.FunctionId)); return (dynamoModel.Workspaces.OfType <CustomNodeWorkspaceModel>() .Select(x => x.CustomNodeId) .Any(guids.Contains)); }
public bool InUse() { // get all of the function ids from the custom nodes in this package var guids = LoadedCustomNodes.Select(x => x.Guid); // check if any of the custom nodes is in a workspace var customNodeInUse = dynSettings.Controller.DynamoViewModel.AllNodes.Where(x => x is dynFunction) .Cast <dynFunction>() .Any(x => guids.Contains(x.Definition.FunctionId)); return((LoadedTypes.Any() || customNodeInUse) && Loaded); }
private bool IsWorkspaceFromPackageOpen(DynamoModel dynamoModel) { // get all of the function ids from the custom nodes in this package var guids = LoadedCustomNodes.Select(x => x.Guid); return (dynamoModel.Workspaces.Any( x => { var def = dynamoModel.CustomNodeManager.GetDefinitionFromWorkspace(x); return def != null && guids.Contains(def.FunctionId); })); }
public bool WorkspaceOpen() { // get all of the function ids from the custom nodes in this package var guids = LoadedCustomNodes.Select(x => x.Guid); return (dynSettings.Controller.DynamoModel.Workspaces.Any( x => { var def = dynSettings.CustomNodeManager.GetDefinitionFromWorkspace(x); return def != null && guids.Contains(def.FunctionId); })); }
internal void RefreshCustomNodesFromDirectory(CustomNodeManager customNodeManager, bool isTestMode) { LoadedCustomNodes.Clear(); var reloadedCustomNodes = customNodeManager.AddUninitializedCustomNodesInPath( CustomNodeDirectory, isTestMode, new PackageInfo(Name, new Version(versionName))); foreach (var x in reloadedCustomNodes) { LoadedCustomNodes.Add(x); } }
internal void UninstallCore() { try { LoadedCustomNodes.ToList().ForEach(x => dynamoModel.CustomNodeManager.RemoveFromDynamo(x.Guid)); dynamoModel.Loader.PackageLoader.LocalPackages.Remove(this); Directory.Delete(this.RootDirectory, true); } catch (Exception e) { dynamoModel.Logger.Log("Exception when attempting to uninstall the package " + this.Name + " from " + this.RootDirectory); dynamoModel.Logger.Log(e.GetType() + ": " + e.Message); throw e; } }
public void Load() { try { GetAssemblies().Select(DynamoLoader.LoadNodesFromAssembly).SelectMany(x => x).ToList().ForEach(x => LoadedTypes.Add(x)); DynamoLoader.LoadCustomNodes(CustomNodeDirectory).ForEach(x => LoadedCustomNodes.Add(x)); Loaded = true; } catch (Exception e) { dynSettings.DynamoLogger.Log("Exception when attempting to load package " + this.Name + " from " + this.RootDirectory); dynSettings.DynamoLogger.Log(e.GetType() + ": " + e.Message); } }
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 void UninstallCore(CustomNodeManager customNodeManager, PackageLoader packageLoader, IPreferences prefs, ILogger logger) { if (this.LoadedAssemblies.Any()) { this.MarkForUninstall(prefs); return; } try { LoadedCustomNodes.ToList().ForEach(x => customNodeManager.RemoveFromDynamo(x.Guid)); packageLoader.LocalPackages.Remove(this); Directory.Delete(this.RootDirectory, true); } catch (Exception e) { logger.Log("Exception when attempting to uninstall the package " + this.Name + " from " + this.RootDirectory); logger.Log(e.GetType() + ": " + e.Message); throw e; } }
private void Uninstall() { var res = MessageBox.Show("Are you sure you want to uninstall " + this.Name + "? This will delete the packages root directory.\n\n You can always redownload the package.", "Uninstalling Package", MessageBoxButton.YesNo, MessageBoxImage.Question); if (res == MessageBoxResult.No) { return; } try { LoadedCustomNodes.ToList().ForEach(x => dynSettings.CustomNodeManager.RemoveFromDynamo(x.Guid)); dynSettings.PackageLoader.LocalPackages.Remove(this); Directory.Delete(this.RootDirectory, true); } catch (Exception e) { MessageBox.Show("Dynamo failed to uninstall the package. You may need to delete the package's root directory manually.", "Uninstall Failure", MessageBoxButton.OK, MessageBoxImage.Error); dynSettings.DynamoLogger.Log("Exception when attempting to uninstall the package " + this.Name + " from " + this.RootDirectory); dynSettings.DynamoLogger.Log(e.GetType() + ": " + e.Message); } }
private void LoadCustomNodesIntoDynamo(DynamoLoader loader) { loader.LoadCustomNodes(CustomNodeDirectory).ForEach(x => LoadedCustomNodes.Add(x)); }