示例#1
0
        public string ObjectsReport()
        {
            Hashtable usedNodes = new Hashtable();

            // Collect used nodes
            AddUsedNodesRecursive(LastSnapshotId(), usedNodes);

            StringBuilder sb = new StringBuilder();

            foreach (Guid nodeId in usedNodes.Keys)
            {
                // We found a node which is not used and should be collected
                var node = provider.GetNode(nodeId, NodeAccess.Read);

                string line = nodeId.ToString() + "\t" + node.NodeType.ToString() + "\t";

                var typeData = new EdgeData(EdgeType.OfType, null);

                if (node.Edges.ContainsKey(typeData))
                {
                    var typeEdge = node.FindEdge(typeData);

                    if (typeEdge != null)
                    {
                        line += typesService.GetTypeFromIdCached(typeEdge.ToNodeId).Name + "\t";
                    }
                }

                sb.AppendLine(line);
            }

            return(sb.ToString());
        }