private QueuedNode GetQueuedNode(NodeName nodeName)
        {
            if (!queuedNodes.TryGetValue(nodeName, out QueuedNode queuedNode))
            {
                queuedNode            = new QueuedNode();
                queuedNodes[nodeName] = queuedNode;
            }

            return(queuedNode);
        }
        public void QueueNode(DataNode node)
        {
            QueuedNode queuedNode = GetQueuedNode(node.Name);

            if (queuedNode.DataNode == null)
            {
                queuedNode.DataNode = new DataNode(
                    node.Name,
                    node.Parent,
                    node.NodeType)
                {
                    Description = node.Description,
                    IsQueued    = true,
                };
            }
        }
        public void QueueModelLine(NodeName nodeId, DataLine dataLine)
        {
            QueuedNode queuedNode = GetQueuedNode(nodeId);

            queuedNode.Lines.Add(dataLine);
        }
        public void QueueModelLink(NodeName nodeId, DataLink dataLink)
        {
            QueuedNode queuedNode = GetQueuedNode(nodeId);

            queuedNode.Links.Add(dataLink);
        }