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

GetLinksForPanel() public method

public GetLinksForPanel ( string panelId, bool includeSubPanels ) : List
panelId string
includeSubPanels bool
return List
        public List<Link> GetLinksForPanel(string panelId, bool includeSubPanels)
        {

            if (!includeSubPanels)
            {
                lock (linksLock)
                    return links.Where(n => n.PanelId == panelId).ToList();
            }
            else
            {
                List<Link> linksList;

                lock (linksLock)
                    linksList = links.Where(n => n.PanelId == panelId).ToList();

                List<PanelNode> panels = GetNodesForPanel(panelId, true).OfType<PanelNode>().ToList();

                lock (linksLock)
                {
                    foreach (PanelNode panel in panels)
                        linksList.AddRange(links.Where(n => n.PanelId == panel.Id).ToList());
                }
                return linksList;
            }
        }

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::GetLinksForPanel