private List <AgentInfo> GetAgentsFromReader(IDataReader reader)
        {
            List <AgentInfo> agentInfoList = new List <AgentInfo>();
            AgentInfo        agentInfo1    = (AgentInfo)null;

            while (reader.Read())
            {
                OsType result1;
                if (!Enum.TryParse <OsType>(DatabaseFunctions.GetString(reader, "OSType"), true, out result1))
                {
                    result1 = (OsType)0;
                }
                AgentInfo agentInfo2 = new AgentInfo();
                agentInfo2.set_AgentId(DatabaseFunctions.GetInt32(reader, "AgentId"));
                agentInfo2.set_AgentGuid(DatabaseFunctions.GetGuid(reader, "AgentGuid"));
                agentInfo2.set_NodeID(DatabaseFunctions.GetNullableInt32(reader, "NodeId"));
                agentInfo2.set_NodeSubType(DatabaseFunctions.GetString(reader, "ObjectSubType", (string)null));
                agentInfo2.set_Uri(DatabaseFunctions.GetString(reader, "Uri"));
                agentInfo2.set_PollingEngineId(DatabaseFunctions.GetInt32(reader, "PollingEngineId"));
                agentInfo2.set_AgentStatus(DatabaseFunctions.GetInt32(reader, "AgentStatus"));
                agentInfo2.set_AgentStatusMessage(DatabaseFunctions.GetString(reader, "AgentStatusMessage"));
                agentInfo2.set_ConnectionStatus(DatabaseFunctions.GetInt32(reader, "ConnectionStatus"));
                agentInfo2.set_ConnectionStatusMessage(DatabaseFunctions.GetString(reader, "ConnectionStatusMessage"));
                agentInfo2.set_OsType(result1);
                agentInfo2.set_OsDistro(DatabaseFunctions.GetString(reader, "OSDistro"));
                AgentInfo agentInfo3 = agentInfo2;
                agentInfo3.set_Name(DatabaseFunctions.GetString(reader, "Name"));
                agentInfo3.set_HostName(DatabaseFunctions.GetString(reader, "HostName"));
                agentInfo3.set_IPAddress(DatabaseFunctions.GetString(reader, "IP"));
                Version result2;
                if (Version.TryParse(DatabaseFunctions.GetString(reader, "OSVersion"), out result2))
                {
                    agentInfo3.set_OsVersion(result2);
                }
                if (agentInfo1 == null || agentInfo1.get_AgentId() != agentInfo3.get_AgentId())
                {
                    agentInfoList.Add(agentInfo3);
                    agentInfo1 = agentInfo3;
                }
                AgentPluginInfo agentPluginInfo1 = new AgentPluginInfo();
                agentPluginInfo1.set_PluginId(DatabaseFunctions.GetString(reader, "PluginId", (string)null));
                AgentPluginInfo agentPluginInfo2 = agentPluginInfo1;
                if (agentPluginInfo2.get_PluginId() != null)
                {
                    agentPluginInfo2.set_Status(DatabaseFunctions.GetInt32(reader, "Status"));
                    agentPluginInfo2.set_StatusMessage(DatabaseFunctions.GetString(reader, "StatusMessage"));
                    agentInfo1.AddPlugin(agentPluginInfo2);
                }
            }
            return(agentInfoList);
        }