private void GenerateNewNodeIds(SGraph graph)
        {
            foreach (var node in graph.Nodes)
            {
                var newNodeId       = Guid.NewGuid().ToString();
                var fromConnections = graph.Connections.Where(connection => connection.FromNodeId == node.Id).ToArray();
                var toConnections   = graph.Connections.Where(connection => connection.ToNodeId == node.Id).ToArray();

                node.Id = newNodeId;

                foreach (var fromConnection in fromConnections)
                {
                    fromConnection.FromNodeId = newNodeId;
                }

                foreach (var toConnection in toConnections)
                {
                    toConnection.ToNodeId = newNodeId;
                }

                foreach (var port in node.Ports)
                {
                    port.NodeId = newNodeId;
                    port.Connections.Clear();
                    port.Connections.AddRange(graph.GetConnections(port));
                }
            }
        }