private void AddCustomNodeFile(string filename) { CustomNodeInfo nodeInfo; if (dynamoViewModel.Model.CustomNodeManager.AddUninitializedCustomNode(filename, DynamoModel.IsTestMode, out nodeInfo)) { // add the new packages folder to path dynamoViewModel.Model.CustomNodeManager.AddUninitializedCustomNodesInPath(Path.GetDirectoryName(filename), DynamoModel.IsTestMode); // Check the ID to confirm weather the file is contained in any package. // If Yes, then update the loadedworkspace node info to this file location // This is to solve the issues when user copy a file from a given package to new location // and start publishing with the new copied file. // Since the loadedworkspace node info location is update, the issue is fixed. foreach (var node in dynamoViewModel.Model.CustomNodeManager.LoadedWorkspaces) { if (node.CustomNodeId == dynamoViewModel.Model.CustomNodeManager.GuidFromPath(filename)) { var fileNameWithoutExtension = Path.GetFileNameWithoutExtension(filename); node.SetInfo(fileNameWithoutExtension, null, null, filename); } } CustomNodeDefinition funcDef; if (dynamoViewModel.Model.CustomNodeManager.TryGetFunctionDefinition(nodeInfo.FunctionId, DynamoModel.IsTestMode, out funcDef) && CustomNodeDefinitions.All(x => x.FunctionId != funcDef.FunctionId)) { CustomNodeDefinitions.Add(funcDef); RaisePropertyChanged("PackageContents"); } } }
private IEnumerable <CustomNodeDefinition> AllDependentFuncDefs() { return (CustomNodeDefinitions.Select(x => x.Dependencies) .SelectMany(x => x) .Where(x => !CustomNodeDefinitions.Contains(x)) .Distinct()); }
private void AddCustomNodeFile(string filename) { CustomNodeInfo nodeInfo; if (dynamoViewModel.Model.CustomNodeManager.AddUninitializedCustomNode(filename, DynamoModel.IsTestMode, out nodeInfo)) { // add the new packages folder to path dynamoViewModel.Model.CustomNodeManager.AddUninitializedCustomNodesInPath(Path.GetDirectoryName(filename), DynamoModel.IsTestMode); CustomNodeDefinition funcDef; if (dynamoViewModel.Model.CustomNodeManager.TryGetFunctionDefinition(nodeInfo.FunctionId, DynamoModel.IsTestMode, out funcDef) && CustomNodeDefinitions.All(x => x.FunctionId != funcDef.FunctionId)) { CustomNodeDefinitions.Add(funcDef); RaisePropertyChanged("PackageContents"); } } }