private GraphNode GetOrCreateConfigNode(IGraphContext context, IItemNode packagesConfig)
        {
            var nodeId   = packagesConfig.GetId();
            var fileNode = context.Graph.Nodes.Get(nodeId);

            if (fileNode == null)
            {
                using (var scope = new GraphTransactionScope())
                {
                    fileNode = context.Graph.Nodes.GetOrCreate(
                        nodeId,
                        Path.GetFileName(packagesConfig.PhysicalPath),
                        CodeNodeCategories.ProjectItem);

                    if (!context.OutputNodes.Contains(fileNode))
                    {
                        context.OutputNodes.Add(fileNode);
                    }

                    scope.Complete();
                }
            }

            return(fileNode);
        }