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");
                }
            }
        }
Example #2
0
 private IEnumerable <CustomNodeDefinition> AllDependentFuncDefs()
 {
     return
         (CustomNodeDefinitions.Select(x => x.Dependencies)
          .SelectMany(x => x)
          .Where(x => !CustomNodeDefinitions.Contains(x))
          .Distinct());
 }
Example #3
0
        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");
                }
            }
        }