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

GetNodesForPanel() public method

public GetNodesForPanel ( string panelId, bool includeSubPanels ) : List
panelId string
includeSubPanels bool
return List
        public List<Node> GetNodesForPanel(string panelId, bool includeSubPanels)
        {

            if (!includeSubPanels)
            {
                lock (nodesLock)
                    return nodes.Where(n => n.PanelId == panelId).ToList();
            }
            else
            {
                List<Node> nodesList;

                lock (nodesLock)
                    nodesList = nodes.Where(n => n.PanelId == panelId).ToList();

                List<PanelNode> panels = nodesList.OfType<PanelNode>().ToList();

                foreach (PanelNode panel in panels)
                {
                    nodesList.AddRange(GetNodesForPanel(panel.Id, true));
                }
                return nodesList;
            }
        }

Usage Example

        public static string SerializePanel(string panelId, NodesEngine engine)
        {
            Node panel = engine.GetNode(panelId) as PanelNode;
            if (panel == null)
            {
                engine.LogEngineError($"Can`t serialize Panel [{panelId}]. Does not exist.");
                return null;
            }

            List<Node> nodesList = new List<Node>();
            nodesList.Add(panel);
            nodesList.AddRange(engine.GetNodesForPanel(panelId, true));

            List<Link> linksList = engine.GetLinksForPanel(panelId, true);

            return SerializeNodesAndLinks(nodesList, linksList);
        }
All Usage Examples Of MyNodes.Nodes.NodesEngine::GetNodesForPanel