protected override void ProcessRecordset(string query, string fileName)
        {
            using (StreamWriter stream = new StreamWriter(outputlog, true))
            {
                LogQuery logQuery = new LogQuery();
                
                COMTSVInputContextClassClass tsvInputFormat = new COMTSVInputContextClassClass();
                LogRecordSet recordSet = logQuery.Execute(query, tsvInputFormat);

                if (newOutput)
                {
                    stream.Write(String.Format("Date{0}Machine{1}Type{2}Instance{3}Counter{4}Value",delimiter,delimiter,delimiter,delimiter,delimiter));
                    stream.Write(stream.NewLine);
                    newOutput = false;
                }

                string[] counterTitles = new string[recordSet.getColumnCount()-3];
                int j = 0;
                for (int i = 3; i < recordSet.getColumnCount()-4; i++)
                {
                    string machine = "", type = "", instance = "", counter = "";
                    if(ParseCounter(recordSet.getColumnName(i), ref machine, ref type, ref instance, ref counter))
                    {
                        counterTitles[j] = String.Format("{0}{1}{2}{3}{4}{5}{6}{7}{8}{9}{10}",
                            "{0}", delimiter, machine, delimiter, type, delimiter, instance, delimiter, counter, delimiter, "{1}");
                    }
                    j++;
                }

                //read log file
                while (!recordSet.atEnd())
                {
                    j = 0;
                    for (int i = 3; i < recordSet.getColumnCount()-4; i++)
                    {
                        if (!String.IsNullOrEmpty(recordSet.getRecord().getValue(i).ToString().Replace("\"", "").Trim()))
                        {
                            DateTime date = DateTime.Parse(recordSet.getRecord().getValue(2).ToString().Replace("\"", ""));
                            string dateStr = date.ToString("yyyy-MM-dd hh:mm:ss");
                            string value = recordSet.getRecord().getValue(i).ToString().Replace("\"", "");
                            stream.WriteLine(String.Format(counterTitles[j], dateStr, value));
                            
                        }
                        j++;
                    }
                    
                    recordSet.moveNext();
                }
                stream.Flush();
                
            }
            ImportToDatabase();
        }
Exemple #2
0
        public static DataTable runQuery(string q, string context, Func <int, bool> updateCallback = null)
        {
            Object o = null;

            switch (context.ToLower())
            {
            case "active directory":
                o = new COMADSInputContextClassClass();
                break;

            case "iis binary":
                o = new COMIISBINInputContextClassClass();
                break;

            case "csv file":
                o = new COMCSVInputContextClassClass();
                break;

            case "windows trace":
                o = new COMETWInputContextClassClass();
                break;

            case "windows events":
                o = new COMEventLogInputContextClassClass();
                break;

            case "file system":
                o = new COMFileSystemInputContextClassClass();
                break;

            case "http error":
                o = new COMHttpErrorInputContextClassClass();
                break;

            case "iis":
                o = new COMIISIISInputContextClassClass();
                break;

            case "iis odbc":
                o = new COMIISODBCInputContextClassClass();
                break;

            case "iis w3c":
                o = new COMIISW3CInputContextClassClass();
                break;

            case "iis ncsa":
                o = new COMIISNCSAInputContextClassClass();
                break;

            case "netmon":
                o = new COMNetMonInputContextClassClass();
                break;

            case "registry":
                o = new COMRegistryInputContextClassClass();
                break;

            case "textline":
                o = new COMTextLineInputContextClassClass();
                break;

            case "textword":
                o = new COMTextWordInputContextClassClass();
                break;

            case "tsv file":
                o = new COMTSVInputContextClassClass();
                break;

            case "urlscan":
                o = new COMURLScanLogInputContextClassClass();
                break;

            case "w3c":
                o = new COMW3CInputContextClassClass();
                break;

            case "xml file":
                o = new COMXMLInputContextClassClass();
                break;

            case "rpower logs":
                o = Activator.CreateInstance(Type.GetTypeFromProgID("MSUtil.LogQuery.RPower.RPowerLogs"));
                break;

            case "rpower keys":
                o = Activator.CreateInstance(Type.GetTypeFromProgID("MSUtil.LogQuery.RPower.RPowerKeys"));
                break;

            case "rpower cc logs":
                o = Activator.CreateInstance(Type.GetTypeFromProgID("MSUtil.LogQuery.RPower.RPowerCC"));
                break;

            case "rpower dbf":
                o = Activator.CreateInstance(Type.GetTypeFromProgID("MSUtil.LogQuery.RPower.RPowerDB"));
                break;

            default:
                o = Activator.CreateInstance(Type.GetTypeFromProgID(context));
                break;
            }

            if (o == null)
            {
                return(null);
            }
            else
            {
                return(runQuery(q, o, updateCallback));
            }
        }