private static HostGraphNode CreateHostGraph(AnalyzedProjectInfo project, List <HostGraphNode> nodes)
        {
            var node = new HostGraphNode(project);

            nodes.Add(node);

            (project.Referenders ?? project.RequiredAddOns).ForEach(reqProj =>
            {
                var reqNode = nodes.FirstOrDefault(n => n.ProjectInfo.Equals(reqProj)) ??
                              CreateHostGraph(reqProj, nodes);
                reqNode.Parents.Add(node);
                node.Children.Add(reqNode);
            });

            return(node);
        }
 private static bool FittingAddOnHost(HostGraphNode node)
 {
     return(node.Type.Equals(HostGraphNodeType.AddOn) && node.Children.Count == 0);
 }
 private static bool AddOnWithNoChildrenAndNoParentLibraries(HostGraphNode node)
 {
     return(node.Type.Equals(HostGraphNodeType.AddOn) &&
            node.Children.Count == 0 &&
            node.Parents.Count(p => p.Type.Equals(HostGraphNodeType.AddOn)).Equals(1));
 }