public void AddNode(Node node, Node parentNode) { if (node.Bounds == RectEx.Zero) { if (modelService.TryGetSavedNode(node.Name, out DataNode savedNode)) { node.Bounds = savedNode.Bounds; node.ScaleFactor = savedNode.Scale; node.IsNodeHidden = savedNode.ShowState == Node.Hidden; } } modelService.Add(node); parentNode.AddChild(node); CreateNodeViewModel(node); AddNodeToParentCanvas(node, parentNode); if (modelService.TryGetQueuedLinesAndLinks( node.Name, out IReadOnlyList <DataLine> lines, out IReadOnlyList <DataLink> links)) { lines.ForEach(line => modelLineService.Value.AddOrUpdateLine(line, node.Stamp)); links.ForEach(link => modelLinkService.Value.AddOrUpdateLink(link, node.Stamp)); modelService.RemovedQueuedNode(node.Name); } }