public void Visit(NamesNode namesNode) { var name = namesNode.NameNodes.First().Name; var extensions = namesNode.NameNodes.Skip(1).Select(t => t.Name).ToList(); for (int i = 0; i < _currentIndent; i++) { Console.Write('.'); } Console.Write(name); if (extensions.Any()) { Console.Write($" ({string.Join(",", extensions)})"); } Console.WriteLine(); }
public IList <NamesNode> GetNamesNodes() { IList <NamesNode> nodes = new List <NamesNode>(); using (EsentSession session = new EsentSession(_database)) { session.Open(); JET_SESID sessionId = session.GetSessionId(); JET_DBID databaseId = session.GetDatabaseId(); JET_TABLEID tableId; if (DatabaseTableExists(sessionId, databaseId, TABLE_REGISTRATION_DATA)) { Api.OpenTable(sessionId, databaseId, TABLE_REGISTRATION_DATA, OpenTableGrbit.ReadOnly, out tableId); Api.MoveBeforeFirst(session.GetSessionId(), tableId); while (Api.TryMoveNext(sessionId, tableId)) { IDictionary <string, JET_COLUMNID> columnDictionary = Api.GetColumnDictionary(sessionId, tableId); NamesNode node = new NamesNode() { AgentId = Api.RetrieveColumnAsString(sessionId, tableId, columnDictionary["AgentId"]), NodeName = Api.RetrieveColumnAsString(sessionId, tableId, columnDictionary["NodeName"]), LCMVersion = Api.RetrieveColumnAsString(sessionId, tableId, columnDictionary["LCMVersion"]), IPAddress = Api.RetrieveColumnAsString(sessionId, tableId, columnDictionary["IPAddress"]), ConfigurationNames = ((List <string>)Api.DeserializeObjectFromColumn(sessionId, tableId, columnDictionary["ConfigurationNames"])) }; nodes.Add(node); } Api.JetCloseTable(sessionId, tableId); } else { _logger.Log(10091, String.Format("Database table {0} not found!", TABLE_REGISTRATION_DATA), LogLevel.Warning); } } return(nodes); }