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);
        }