public IEnumerable<WebTestRequest> GetRequests() { LogQueryClassClass logQuery = new LogQueryClassClass(); COMIISW3CInputContextClassClass iisInputFormat = new COMIISW3CInputContextClassClass(); string query = @"SELECT s-port, cs-method, cs-uri-stem, cs-uri-query FROM " + m_iisLogPath; ILogRecordset recordSet = logQuery.Execute(query, iisInputFormat); while (!recordSet.atEnd()) { ILogRecord record = recordSet.getRecord(); if (record.getValueEx("cs-method").ToString() == "GET") { string path = record.getValueEx("cs-uri-stem").ToString(); string querystring = record.getValueEx("cs-uri-query").ToString(); var urlBuilder = new StringBuilder(); urlBuilder.Append(path); if (!String.IsNullOrEmpty(querystring)) { urlBuilder.Append("?"); urlBuilder.Append(querystring); } var request = new WebTestRequest(urlBuilder.ToString()); yield return request; } recordSet.moveNext(); } recordSet.close(); }
public static void BatchIISLog(string sql, string iCheckpoint) { COMIISW3CInputContextClassClass Input = new COMIISW3CInputContextClassClass(); Input.iCheckpoint = iCheckpoint; ExectuteBatch(sql, Input); }
public static DataTable ParseIISLog(string sql, string iCheckpoint) { COMIISW3CInputContextClassClass Input = new COMIISW3CInputContextClassClass(); Input.iCheckpoint = iCheckpoint; return(Execute(sql, Input)); }
public static IReadOnlyList <int> QueryLogs(string fromClause, string whereClause) { var query = $"SELECT time-taken AS TimeTaken FROM {fromClause} WHERE {whereClause} ORDER BY TimeTaken"; var timesTaken = new List <int>(); var logParser = new LogQueryClassClass(); var iisLog = new COMIISW3CInputContextClassClass(); var recordSet = logParser.Execute(query, iisLog); while (!recordSet.atEnd()) { var recordRow = recordSet.getRecord(); timesTaken.Add(Convert.ToInt32(recordRow.getValue(0))); recordSet.moveNext(); } return(timesTaken); }
private void PerformRecordCount_Click(object sender, EventArgs e) { toolStripStatusLabelDataInfo.Text = ""; if (FromText.Text.Trim() == String.Empty) { SelectFileButton.PerformClick(); if (FromText.Text.Trim() == String.Empty) { MessageBox.Show("You must have a FROM statement to continue." + Environment.NewLine + "Please select a file or enter the FROM manually.", "Query cancelled"); return; } } PerformRecordCount.Enabled = false; ICOMIISW3CInputContext input = new COMIISW3CInputContextClassClass(); toolStripStatusLabelDataInfo.Text = "There are " + GetRecordCount(FromText.Text, input).ToString() + " records to parse."; PerformRecordCount.Enabled = true; }
private void PerformSQLQuery() { DateTime startTime = DateTime.Now; dataGridViewResults.DataSource = null; toolStripStatusLabelDataInfo.Text = ""; QueryButton.Enabled = false; toolStripStatusLabelTimeTaken.Text = "Performing query."; string sqlQuery = BuildSqlQuery(); textFinalQuery.Text = sqlQuery; // Perform the query requested ICOMIISW3CInputContext iisW3c = new COMIISW3CInputContextClassClass(); int recordsCount = GetRecordCount(FromText.Text.Trim(), iisW3c); if (recordsCount > 0) { toolStripProgressBar.Maximum = recordsCount; toolStripProgressBar.Value = 0; ILogRecordset rs = GetRecordSet(sqlQuery.ToString(), iisW3c); ILogRecord rcd; DataTable table = new DataTable(); if (!rs.atEnd()) { for (int i = 0; i < rs.getColumnCount(); i++) { table.Columns.Add(rs.getColumnName(i), Type.GetType("System.String")); } } DataRow row; //textScratchPad.Text = ""; int currentRecord = 0; while (!rs.atEnd()) { currentRecord++; rcd = rs.getRecord(); row = table.NewRow(); for (int i = 0; i < rs.getColumnCount(); i++) { row[i] = rcd.getValue(i).ToString(); } table.Rows.Add(row); //textBox1.Text += rcd.getValue("cs-uri-stem").ToString() + System.Environment.NewLine; rs.moveNext(); if (currentRecord <= toolStripProgressBar.Maximum) { toolStripProgressBar.Value = currentRecord; } else { toolStripProgressBar.Value = toolStripProgressBar.Maximum; } } rs.close(); dataGridViewResults.DataSource = table; toolStripStatusLabelDataInfo.Text = "Records returned: " + table.Rows.Count.ToString(); toolStripProgressBar.Value = 0; } else { MessageBox.Show("No records would be returned by your query."); } DateTime endTime = DateTime.Now; toolStripStatusLabelTimeTaken.Text = ""; toolStripStatusLabelTimeTaken.Text += "Time taken: " + endTime.Subtract(startTime).ToString(); /* ICOMDataGridOutputContext dataGrid = new COMDataGridOutputContextClassClass(); LogParser.ExecuteBatch("SELECT TOP 10 * FROM " + FromText.Text + "", iisW3c, dataGrid); */ /* ICOMW3COutputContext w3cOutput = new COMW3COutputContextClassClass(); LogParser.ExecuteBatch("SELECT TOP 10 * FROM '" + FromText.Text + "'", iisW3c, w3cOutput); */ QueryButton.Enabled = true; }
private void PerformSQLQuery() { DateTime startTime = DateTime.Now; dataGridViewResults.DataSource = null; toolStripStatusLabelDataInfo.Text = ""; QueryButton.Enabled = false; toolStripStatusLabelTimeTaken.Text = "Performing query."; string sqlQuery = BuildSqlQuery(); textFinalQuery.Text = sqlQuery; // Perform the query requested ICOMIISW3CInputContext iisW3c = new COMIISW3CInputContextClassClass(); int recordsCount = GetRecordCount(FromText.Text.Trim(), iisW3c); if (recordsCount > 0) { toolStripProgressBar.Maximum = recordsCount; toolStripProgressBar.Value = 0; ILogRecordset rs = GetRecordSet(sqlQuery.ToString(), iisW3c); ILogRecord rcd; DataTable table = new DataTable(); if (!rs.atEnd()) { for (int i = 0; i < rs.getColumnCount(); i++) { table.Columns.Add(rs.getColumnName(i), Type.GetType("System.String")); } } DataRow row; //textScratchPad.Text = ""; int currentRecord = 0; while (!rs.atEnd()) { currentRecord++; rcd = rs.getRecord(); row = table.NewRow(); for (int i = 0; i < rs.getColumnCount(); i++) { row[i] = rcd.getValue(i).ToString(); } table.Rows.Add(row); //textBox1.Text += rcd.getValue("cs-uri-stem").ToString() + System.Environment.NewLine; rs.moveNext(); if (currentRecord <= toolStripProgressBar.Maximum) { toolStripProgressBar.Value = currentRecord; } else { toolStripProgressBar.Value = toolStripProgressBar.Maximum; } } rs.close(); dataGridViewResults.DataSource = table; toolStripStatusLabelDataInfo.Text = "Records returned: " + table.Rows.Count.ToString(); toolStripProgressBar.Value = 0; } else { MessageBox.Show("No records would be returned by your query."); } DateTime endTime = DateTime.Now; toolStripStatusLabelTimeTaken.Text = ""; toolStripStatusLabelTimeTaken.Text += "Time taken: " + endTime.Subtract(startTime).ToString(); /* * ICOMDataGridOutputContext dataGrid = new COMDataGridOutputContextClassClass(); * * LogParser.ExecuteBatch("SELECT TOP 10 * FROM " + FromText.Text + "", iisW3c, dataGrid); */ /* * ICOMW3COutputContext w3cOutput = new COMW3COutputContextClassClass(); * * LogParser.ExecuteBatch("SELECT TOP 10 * FROM '" + FromText.Text + "'", iisW3c, w3cOutput); */ QueryButton.Enabled = true; }
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)); } }