MyNodes.Nodes.NodesEngine.GenerateNewIds C# (CSharp) Method

GenerateNewIds() public method

public GenerateNewIds ( List &nodesList, List &linksList ) : void
nodesList List
linksList List
return void
        public void GenerateNewIds(ref List<Node> nodesList, ref List<Link> linksList)
        {
            foreach (var node in nodesList)
            {
                //generate id`s for inputs
                foreach (var input in node.Inputs)
                {
                    string oldId = input.Id;
                    input.Id = Guid.NewGuid().ToString();

                    //update links
                    foreach (var link in linksList.Where(x => x.InputId == oldId))
                        link.InputId = input.Id;

                    //for panel update input node id
                    if (node is PanelNode)
                        nodesList.FirstOrDefault(x => x.Id == oldId).Id = input.Id;
                }

                //generate id`s for outputs
                foreach (var output in node.Outputs)
                {
                    string oldId = output.Id;
                    output.Id = Guid.NewGuid().ToString();

                    //update links
                    foreach (var link in linksList.Where(x => x.OutputId == oldId))
                        link.OutputId = output.Id;

                    //for panel update output node id
                    if (node is PanelNode)
                        nodesList.FirstOrDefault(x => x.Id == oldId).Id = output.Id;
                }


                if (node is PanelNode)
                {
                    string oldId = node.Id;
                    node.Id = Guid.NewGuid().ToString();

                    foreach (var n in nodesList.Where(x => x.PanelId == oldId))
                        n.PanelId = node.Id;
                }
                else if (node is PanelInputNode || node is PanelOutputNode)
                {
                    //id already updated
                }
                else
                {
                    node.Id = Guid.NewGuid().ToString();
                }
            }
        }

Same methods

NodesEngine::GenerateNewIds ( MyNodes.Nodes.Node node ) : void