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(); }
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)); } }