private string GetQIValue(ListViewItem lvi, QueryInstance queryInstance) { string results = ""; try { object value = queryInstance.RunQuery(); CollectorState currentstate = queryInstance.GetState(value); results = FormatUtils.N(value, "[null]"); if (currentstate == CollectorState.Error) { lvi.ImageIndex = 3; } else if (currentstate == CollectorState.Warning) { lvi.ImageIndex = 2; } else { lvi.ImageIndex = 1; } } catch (Exception ex) { results = ex.Message; } return(results); }
public void AddWithSameConnection() { if (lvwEntries.SelectedItems.Count > 0 && lvwEntries.SelectedItems[0].Tag is QueryInstance) { SqlQueryCollectorEditEntry editSqlQueryInstance = new SqlQueryCollectorEditEntry(); QueryInstance masterToCopy = (QueryInstance)lvwEntries.SelectedItems[0].Tag; QueryInstance sqlQueryInstanceCopy = new QueryInstance() { SqlServer = masterToCopy.SqlServer, Database = masterToCopy.Database, IntegratedSecurity = masterToCopy.IntegratedSecurity, UserName = masterToCopy.UserName, Password = masterToCopy.Password, CmndTimeOut = masterToCopy.CmndTimeOut }; editSqlQueryInstance.SelectedQueryInstance = sqlQueryInstanceCopy; if (editSqlQueryInstance.ShowDialog() == System.Windows.Forms.DialogResult.OK) { ListViewItem lvi = new ListViewItem(editSqlQueryInstance.SelectedQueryInstance.Name); lvi.SubItems.Add(editSqlQueryInstance.SelectedQueryInstance.ToServerDBName()); lvi.SubItems.Add(editSqlQueryInstance.SelectedQueryInstance.WarningValue); lvi.SubItems.Add(editSqlQueryInstance.SelectedQueryInstance.ErrorValue); lvi.Tag = editSqlQueryInstance.SelectedQueryInstance; lvwEntries.Items.Add(lvi); CheckOKEnabled(); CheckEnableButtons(); } } }
private void LoadDetailView() { lvwDetails.BeginUpdate(); lvwDetails.Items.Clear(); lvwDetails.Columns.Clear(); if (lvwResults.SelectedItems.Count >= 1 && lvwResults.SelectedItems[0].Tag is QueryInstance) { QueryInstance queryInstance = (QueryInstance)lvwResults.SelectedItems[0].Tag; try { Cursor.Current = Cursors.WaitCursor; DataSet ds = queryInstance.RunDetailQuery(); foreach (DataColumn currentDataColumn in ds.Tables[0].Columns) { ColumnHeader newColumn = new ColumnHeader(); newColumn.Tag = currentDataColumn; newColumn.Text = currentDataColumn.Caption; if ((currentDataColumn.DataType == typeof(UInt64)) || (currentDataColumn.DataType == typeof(UInt32)) || (currentDataColumn.DataType == typeof(UInt16)) || (currentDataColumn.DataType == typeof(Int64)) || (currentDataColumn.DataType == typeof(Int32)) || (currentDataColumn.DataType == typeof(Int16))) { newColumn.TextAlign = HorizontalAlignment.Right; } else { newColumn.TextAlign = HorizontalAlignment.Left; } lvwDetails.Columns.Add(newColumn); } foreach (DataRow r in ds.Tables[0].Rows) { ListViewItem lvi = new ListViewItem(FormatUtils.N(r[0], "[Null]")); for (int i = 1; i < lvwDetails.Columns.Count; i++) { lvi.SubItems.Add(FormatUtils.N(r[i], "[Null]")); } lvwDetails.Items.Add(lvi); } lvwDetails.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize); } catch (Exception ex) { MessageBox.Show(ex.Message, "View details", MessageBoxButtons.OK, MessageBoxIcon.Error); } finally { Cursor.Current = Cursors.Default; } } lvwDetails.EndUpdate(); ExportButtonVisible = lvwResults.SelectedItems.Count > 0; }
private void editSQLQuerylocalCopyToolStripMenuItem_Click(object sender, EventArgs e) { if (lvwResults.SelectedItems.Count > 0) { bool autoRefreshTemp = refreshTimer.Enabled; refreshTimer.Enabled = false; QueryInstance queryInstance = (QueryInstance)lvwResults.SelectedItems[0].Tag; EditSqlQuery editDetailQuery = new EditSqlQuery(); editDetailQuery.SelectedQueryInstance = queryInstance; if (editDetailQuery.ShowDialog() == System.Windows.Forms.DialogResult.OK) { lvwResults.SelectedItems[0].Tag = editDetailQuery.SelectedQueryInstance; } refreshTimer.Enabled = autoRefreshTemp; } }
public override void OKClicked() { if (SelectedConfig == null) { SelectedConfig = new SqlQueryCollectorConfig(); } SqlQueryCollectorConfig sqlQueryConfig = (SqlQueryCollectorConfig)SelectedConfig; sqlQueryConfig.Entries.Clear(); foreach (ListViewItem lvi in lvwEntries.Items) { QueryInstance queryInstance = (QueryInstance)lvi.Tag; sqlQueryConfig.Entries.Add(queryInstance); } DialogResult = System.Windows.Forms.DialogResult.OK; Close(); }
//public List<QueryInstance> Queries { get; set; } //public SqlQueryCollectorConfig() //{ // Queries = new List<QueryInstance>(); //} #region IAgentConfig Members public void ReadConfiguration(string configurationString) { XmlDocument config = new XmlDocument(); config.LoadXml(configurationString); XmlElement root = config.DocumentElement; Entries.Clear(); foreach (XmlElement queryNode in root.SelectNodes("queries/query")) { QueryInstance queryEntry = new QueryInstance(); queryEntry.Name = queryNode.ReadXmlElementAttr("name", ""); queryEntry.SqlServer = queryNode.ReadXmlElementAttr("sqlServer", ""); queryEntry.Database = queryNode.ReadXmlElementAttr("database", ""); queryEntry.IntegratedSecurity = bool.Parse(queryNode.ReadXmlElementAttr("integratedSec", "True")); queryEntry.UserName = queryNode.ReadXmlElementAttr("userName", ""); queryEntry.Password = queryNode.ReadXmlElementAttr("password", ""); queryEntry.CmndTimeOut = int.Parse(queryNode.ReadXmlElementAttr("cmndTimeOut", "60")); queryEntry.UsePersistentConnection = bool.Parse(queryNode.ReadXmlElementAttr("usePersistentConnection", "False")); queryEntry.ApplicationName = queryNode.ReadXmlElementAttr("applicationName", "QuickMon"); XmlNode summaryQueryNode = queryNode.SelectSingleNode("summaryQuery"); queryEntry.UseSPForSummary = bool.Parse(summaryQueryNode.ReadXmlElementAttr("useSP", "False")); queryEntry.ReturnValueIsNumber = bool.Parse(summaryQueryNode.ReadXmlElementAttr("returnValueIsNumber", "True")); queryEntry.ReturnValueInverted = bool.Parse(summaryQueryNode.ReadXmlElementAttr("returnValueInverted", "False")); queryEntry.WarningValue = summaryQueryNode.ReadXmlElementAttr("warningValue", "1"); queryEntry.ErrorValue = summaryQueryNode.ReadXmlElementAttr("errorValue", "2"); queryEntry.SuccessValue = summaryQueryNode.ReadXmlElementAttr("successValue", "[any]"); queryEntry.UseRowCountAsValue = bool.Parse(summaryQueryNode.ReadXmlElementAttr("useRowCountAsValue", "False")); queryEntry.UseExecuteTimeAsValue = bool.Parse(summaryQueryNode.ReadXmlElementAttr("useExecuteTimeAsValue", "False")); queryEntry.SummaryQuery = summaryQueryNode.InnerText; XmlNode detailQueryNode = queryNode.SelectSingleNode("detailQuery"); queryEntry.UseSPForDetail = bool.Parse(detailQueryNode.ReadXmlElementAttr("useSP", "False")); queryEntry.DetailQuery = detailQueryNode.InnerText; Entries.Add(queryEntry); } }
public override void RefreshDisplayData() { try { lvwResults.BeginUpdate(); Cursor.Current = Cursors.WaitCursor; foreach (ListViewItem lvi in lvwResults.Items) { QueryInstance queryInstance = (QueryInstance)lvi.Tag; lvi.SubItems[1].Text = GetQIValue(lvi, queryInstance); } } catch (Exception ex) { MessageBox.Show(ex.Message, "Refresh", MessageBoxButtons.OK, MessageBoxIcon.Error); } finally { Cursor.Current = Cursors.Default; lvwResults.EndUpdate(); } LoadDetailView(); base.RefreshDisplayData(); }
private void cmdOK_Click(object sender, EventArgs e) { if (DoValidate()) { QueryInstance selectedEntry; if (SelectedEntry != null) { selectedEntry = (QueryInstance)SelectedEntry; } else if (SelectedQueryInstance != null) { selectedEntry = (QueryInstance)SelectedQueryInstance; } else { selectedEntry = new QueryInstance(); SelectedEntry = selectedEntry; } if (selectedEntry != null) { selectedEntry.Name = txtName.Text; selectedEntry.SqlServer = txtServer.Text; selectedEntry.Database = txtDatabase.Text; selectedEntry.IntegratedSecurity = chkIntegratedSec.Checked; selectedEntry.UserName = txtUserName.Text; selectedEntry.Password = txtPassword.Text; selectedEntry.CmndTimeOut = (int)numericUpDownCmndTimeOut.Value; selectedEntry.UseSPForSummary = chkUseSPForSummary.Checked; selectedEntry.SummaryQuery = txtStateQuery.Text; if (cboReturnType.SelectedIndex == 0) { selectedEntry.ReturnValueIsNumber = false; selectedEntry.UseRowCountAsValue = false; selectedEntry.UseExecuteTimeAsValue = false; } else { selectedEntry.ReturnValueIsNumber = true; if (cboReturnType.SelectedIndex == 2) { selectedEntry.UseRowCountAsValue = true; } else if (cboReturnType.SelectedIndex == 3) { selectedEntry.UseExecuteTimeAsValue = true; chkReturnValueNotInverted.Checked = true; } } selectedEntry.ReturnValueInverted = !chkReturnValueNotInverted.Checked; selectedEntry.SuccessValue = cboSuccessValue.Text; selectedEntry.WarningValue = cboWarningValue.Text; selectedEntry.ErrorValue = cboErrorValue.Text; selectedEntry.UseSPForDetail = chkUseSPForDetail.Checked; selectedEntry.DetailQuery = txtDetailQuery.Text; selectedEntry.UsePersistentConnection = chkUsePersistentConnection.Checked; selectedEntry.ApplicationName = txtApplicationName.Text; DialogResult = System.Windows.Forms.DialogResult.OK; Close(); } } }
private void cmdTest_Click(object sender, EventArgs e) { if (DoValidate()) { string lastStep = "Initialize values"; try { Cursor.Current = Cursors.WaitCursor; QueryInstance testQueryInstance = new QueryInstance(); testQueryInstance.Name = txtName.Text; testQueryInstance.SqlServer = txtServer.Text; testQueryInstance.Database = txtDatabase.Text; testQueryInstance.IntegratedSecurity = chkIntegratedSec.Checked; testQueryInstance.UserName = txtUserName.Text; testQueryInstance.Password = txtPassword.Text; testQueryInstance.CmndTimeOut = (int)numericUpDownCmndTimeOut.Value; testQueryInstance.UseSPForSummary = chkUseSPForSummary.Checked; testQueryInstance.SummaryQuery = txtStateQuery.Text; if (cboReturnType.SelectedIndex == 0) { testQueryInstance.ReturnValueIsNumber = false; testQueryInstance.UseRowCountAsValue = false; testQueryInstance.UseExecuteTimeAsValue = false; } else { testQueryInstance.ReturnValueIsNumber = true; if (cboReturnType.SelectedIndex == 2) { testQueryInstance.UseRowCountAsValue = true; } else if (cboReturnType.SelectedIndex == 3) { testQueryInstance.UseExecuteTimeAsValue = true; chkReturnValueNotInverted.Checked = true; } } testQueryInstance.ReturnValueInverted = !chkReturnValueNotInverted.Checked; testQueryInstance.SuccessValue = cboSuccessValue.Text; testQueryInstance.WarningValue = cboWarningValue.Text; testQueryInstance.ErrorValue = cboErrorValue.Text; testQueryInstance.UseSPForDetail = chkUseSPForDetail.Checked; testQueryInstance.DetailQuery = txtDetailQuery.Text; testQueryInstance.ApplicationName = txtApplicationName.Text; lastStep = "Run summary query"; object returnValue = testQueryInstance.RunQuery(); if (!testQueryInstance.UseRowCountAsValue && !testQueryInstance.UseExecuteTimeAsValue && !returnValue.IsNumber()) { throw new Exception(string.Format("Return value is not an integer!\r\nValue returned: {0}", returnValue)); } //if (!testQueryInstance.ReturnValueIsNumber) //{ // lastStep = "Run summary query"; // returnValue = testQueryInstance.RunQueryWithSingleResult(); //} //else if (!testQueryInstance.UseRowCountAsValue && !testQueryInstance.UseExecuteTimeAsValue) //{ // lastStep = "Run summary query (value is number)"; // returnValue = testQueryInstance.RunQueryWithSingleResult(); // if (!returnValue.IsNumber()) // throw new Exception(string.Format("Return value is not an integer!\r\nValue returned: {0}", returnValue)); //} //else if (testQueryInstance.UseRowCountAsValue) //{ // lastStep = "Run summary query (row count as value)"; // returnValue = testQueryInstance.RunQueryWithCountResult(); //} //else //{ // lastStep = "Run summary query (execution time as value)"; // returnValue = testQueryInstance.RunQueryWithExecutionTimeResult(); //} //testing detail query List <DataColumn> columns = new List <DataColumn>(); // = testQueryInstance.GetDetailQueryColumns(); lastStep = "Testing detail query"; DataSet ds = testQueryInstance.RunDetailQuery(); lastStep = "Testing detail query - Getting column names"; columns.AddRange((from DataColumn c in ds.Tables[0].Columns select c).ToArray()); MessageBox.Show(string.Format("Success!\r\nSummary value return: {0}\r\nDetail row count: {1}\r\nDetail columns returned: {2}", returnValue, ds.Tables[0].Rows.Count, columns.ToCSVString()), "Test", MessageBoxButtons.OK, MessageBoxIcon.Information); } catch (Exception ex) { MessageBox.Show(string.Format("Failed!\r\nLast step: {0}\r\n{1}", lastStep, ex.Message), "Test", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } finally { Cursor.Current = Cursors.Default; } } }