Ejemplo n.º 1
0
        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();
        }
Ejemplo n.º 2
0
        public static void BatchIISLog(string sql, string iCheckpoint)
        {
            COMIISW3CInputContextClassClass Input = new COMIISW3CInputContextClassClass();

            Input.iCheckpoint = iCheckpoint;

            ExectuteBatch(sql, Input);
        }
Ejemplo n.º 3
0
        public static DataTable ParseIISLog(string sql, string iCheckpoint)
        {
            COMIISW3CInputContextClassClass Input = new COMIISW3CInputContextClassClass();

            Input.iCheckpoint = iCheckpoint;

            return(Execute(sql, Input));
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
        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;
        }
Ejemplo n.º 6
0
		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;
		}
Ejemplo n.º 7
0
		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;
		}
Ejemplo n.º 8
0
        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;
        }
Ejemplo n.º 9
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));
            }
        }