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();
        }
Example #2
0
        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);
        }