private void AddFilteredTree([NotNull] ThreatSourceNodeParentChild node, [NotNull] List <string> include, Node parent = null) { if (include.Contains(node.Node.Id)) { var treeNode = new Node(node.ToString()) { Tag = node, CheckBoxVisible = true, CheckBoxStyle = eCheckBoxStyle.CheckBox, Checked = false }; if (parent == null) { _nodes.Nodes.Add(treeNode); } else { parent.Nodes.Add(treeNode); } var children = node.Children; if (children != null) { foreach (var child in children) { AddFilteredTree(child, include, treeNode); } } } }
private bool Check([NotNull] ThreatSourceNodeParentChild node, string filter, List <string> include) { bool result = false; var children = node.Children; if (children != null) { foreach (var child in children) { result |= Check(child, filter, include); } } result = result | node.Node.Properties.Any(x => x.Value?.IndexOf(filter, StringComparison.OrdinalIgnoreCase) >= 0); if (result) { include.Add(node.Node.Id); } return(result); }