Beispiel #1
0
        private void cmdOK_Click(object sender, EventArgs e)
        {
            DirectoryServicesQueryCollectorConfigEntry selectedEntry;

            if (SelectedEntry == null)
            {
                SelectedEntry = new DirectoryServicesQueryCollectorConfigEntry();
            }
            selectedEntry                        = (DirectoryServicesQueryCollectorConfigEntry)SelectedEntry;
            selectedEntry.Name                   = txtName.Text;
            selectedEntry.DomainController       = txtDomainController.Text;
            selectedEntry.PropertiesToLoad       = txtPropertiestToLoad.Text;
            selectedEntry.ReturnCheckSequence    = optGWE.Checked ? CollectorAgentReturnValueCheckSequence.GWE : CollectorAgentReturnValueCheckSequence.EWG;
            selectedEntry.UseRowCountAsValue     = chkUseRowCount.Checked;
            selectedEntry.MaxRowsToEvaluate      = (int)maxRowsNumericUpDown.Value;
            selectedEntry.QueryFilterText        = txtQueryText.Text;
            selectedEntry.GoodScriptText         = txtSuccess.Text;
            selectedEntry.GoodResultMatchType    = (CollectorAgentReturnValueCompareMatchType)cboSuccessMatchType.SelectedIndex;
            selectedEntry.WarningScriptText      = txtWarning.Text;
            selectedEntry.WarningResultMatchType = (CollectorAgentReturnValueCompareMatchType)cboWarningMatchType.SelectedIndex;
            selectedEntry.ErrorScriptText        = txtError.Text;
            selectedEntry.ErrorResultMatchType   = (CollectorAgentReturnValueCompareMatchType)cboErrorMatchType.SelectedIndex;
            DialogResult = System.Windows.Forms.DialogResult.OK;
            Close();
        }
Beispiel #2
0
        public void ReadConfiguration(string configurationString)
        {
            XmlDocument config = new XmlDocument();

            config.LoadXml(configurationString);
            XmlElement root = config.DocumentElement;

            Entries.Clear();
            foreach (XmlElement queryNode in root.SelectNodes("directoryServices/query"))
            {
                DirectoryServicesQueryCollectorConfigEntry dirSrvsQryEntry = new DirectoryServicesQueryCollectorConfigEntry();
                dirSrvsQryEntry.Name                = queryNode.ReadXmlElementAttr("name", "");
                dirSrvsQryEntry.DomainController    = queryNode.ReadXmlElementAttr("domainController", "");
                dirSrvsQryEntry.PropertiesToLoad    = queryNode.ReadXmlElementAttr("propertiesToLoad", "sAMAccountName");
                dirSrvsQryEntry.UseRowCountAsValue  = queryNode.ReadXmlElementAttr("useRowCountAsValue", false);
                dirSrvsQryEntry.MaxRowsToEvaluate   = queryNode.ReadXmlElementAttr("maxRows", 1);
                dirSrvsQryEntry.ReturnCheckSequence = CollectorReturnValueCompareEngine.CheckSequenceTypeFromString(queryNode.ReadXmlElementAttr("returnCheckSequence", "gwe"));
                XmlNode queryFilterNode = queryNode.SelectSingleNode("queryFilter");
                dirSrvsQryEntry.QueryFilterText = queryFilterNode.InnerText;
                XmlNode goodConditionNode = queryNode.SelectSingleNode("goodCondition");
                dirSrvsQryEntry.GoodResultMatchType = CollectorReturnValueCompareEngine.MatchTypeFromString(goodConditionNode.ReadXmlElementAttr("resultMatchType", "match"));
                dirSrvsQryEntry.GoodScriptText      = goodConditionNode.InnerText;
                XmlNode warningConditionNode = queryNode.SelectSingleNode("warningCondition");
                dirSrvsQryEntry.WarningResultMatchType = CollectorReturnValueCompareEngine.MatchTypeFromString(warningConditionNode.ReadXmlElementAttr("resultMatchType", "match"));
                dirSrvsQryEntry.WarningScriptText      = warningConditionNode.InnerText;
                XmlNode errorConditionNode = queryNode.SelectSingleNode("errorCondition");
                dirSrvsQryEntry.ErrorResultMatchType = CollectorReturnValueCompareEngine.MatchTypeFromString(errorConditionNode.ReadXmlElementAttr("resultMatchType", "match"));
                dirSrvsQryEntry.ErrorScriptText      = errorConditionNode.InnerText;
                Entries.Add(dirSrvsQryEntry);
            }
        }
Beispiel #3
0
        private string GetQIValue(ListViewItem lvi, DirectoryServicesQueryCollectorConfigEntry dsQueryEntry)
        {
            string results = "";

            try
            {
                object         value        = dsQueryEntry.RunQuery();
                CollectorState currentstate = dsQueryEntry.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);
        }
Beispiel #4
0
        private void DirectoryServicesQueryCollectorEditEntry_Load(object sender, EventArgs e)
        {
            if (SelectedEntry == null)
            {
                SelectedEntry = new DirectoryServicesQueryCollectorConfigEntry();
            }
            DirectoryServicesQueryCollectorConfigEntry selectedEntry = (DirectoryServicesQueryCollectorConfigEntry)SelectedEntry;

            #region Load Match types
            cboSuccessMatchType.Items.Clear();
            cboSuccessMatchType.Items.AddRange(CollectorAgentReturnValueCompareEngine.ReturnValueCompareMatchTypesToList().ToArray());
            if (cboSuccessMatchType.Items.Count > 0)
            {
                cboSuccessMatchType.SelectedIndex = 0;
            }
            cboWarningMatchType.Items.Clear();
            cboWarningMatchType.Items.AddRange(CollectorAgentReturnValueCompareEngine.ReturnValueCompareMatchTypesToList().ToArray());
            if (cboWarningMatchType.Items.Count > 0)
            {
                cboWarningMatchType.SelectedIndex = 0;
            }
            cboErrorMatchType.Items.Clear();
            cboErrorMatchType.Items.AddRange(CollectorAgentReturnValueCompareEngine.ReturnValueCompareMatchTypesToList().ToArray());
            if (cboErrorMatchType.Items.Count > 0)
            {
                cboErrorMatchType.SelectedIndex = 0;
            }
            #endregion

            if (selectedEntry != null)
            {
                txtName.Text                      = selectedEntry.Name;
                txtDomainController.Text          = selectedEntry.DomainController;
                txtQueryText.Text                 = selectedEntry.QueryFilterText;
                txtPropertiestToLoad.Text         = selectedEntry.PropertiesToLoad;
                optEWG.Checked                    = selectedEntry.ReturnCheckSequence == CollectorAgentReturnValueCheckSequence.EWG;
                chkUseRowCount.Checked            = selectedEntry.UseRowCountAsValue;
                maxRowsNumericUpDown.Value        = selectedEntry.MaxRowsToEvaluate;
                txtSuccess.Text                   = selectedEntry.GoodScriptText;
                cboSuccessMatchType.SelectedIndex = (int)selectedEntry.GoodResultMatchType;
                txtWarning.Text                   = selectedEntry.WarningScriptText;
                cboWarningMatchType.SelectedIndex = (int)selectedEntry.WarningResultMatchType;
                txtError.Text                     = selectedEntry.ErrorScriptText;
                cboErrorMatchType.SelectedIndex   = (int)selectedEntry.ErrorResultMatchType;
            }
        }
Beispiel #5
0
        private void cmdRunQuery_Click(object sender, EventArgs e)
        {
            try
            {
                Cursor.Current = Cursors.WaitCursor;

                DirectoryServicesQueryCollectorConfigEntry testEntry = new DirectoryServicesQueryCollectorConfigEntry();
                testEntry.Name                   = txtName.Text;
                testEntry.DomainController       = txtDomainController.Text;
                testEntry.PropertiesToLoad       = txtPropertiestToLoad.Text;
                testEntry.ReturnCheckSequence    = optGWE.Checked ? CollectorAgentReturnValueCheckSequence.GWE : CollectorAgentReturnValueCheckSequence.EWG;
                testEntry.UseRowCountAsValue     = chkUseRowCount.Checked;
                testEntry.MaxRowsToEvaluate      = (int)maxRowsNumericUpDown.Value;
                testEntry.QueryFilterText        = txtQueryText.Text;
                testEntry.GoodScriptText         = txtSuccess.Text;
                testEntry.GoodResultMatchType    = (CollectorAgentReturnValueCompareMatchType)cboSuccessMatchType.SelectedIndex;
                testEntry.WarningScriptText      = txtWarning.Text;
                testEntry.WarningResultMatchType = (CollectorAgentReturnValueCompareMatchType)cboWarningMatchType.SelectedIndex;
                testEntry.ErrorScriptText        = txtError.Text;
                testEntry.ErrorResultMatchType   = (CollectorAgentReturnValueCompareMatchType)cboErrorMatchType.SelectedIndex;

                object         results          = testEntry.RunQuery();
                CollectorState currentstate     = testEntry.GetState(results);
                string         formattedResults = results.ToString();
                if (formattedResults.Length > 255)
                {
                    formattedResults = formattedResults.Substring(0, 255);
                }
                MessageBox.Show(string.Format("Result: {0}\r\nValue(s): {1}", currentstate, formattedResults), "Test query", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            catch (Exception ex)
            {
                Cursor.Current = Cursors.Default;
                MessageBox.Show(ex.Message, "Run script", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            finally
            {
                Cursor.Current = Cursors.Default;
            }
        }
Beispiel #6
0
 public override void RefreshDisplayData()
 {
     try
     {
         lvwResults.BeginUpdate();
         Cursor.Current = Cursors.WaitCursor;
         foreach (ListViewItem lvi in lvwResults.Items)
         {
             DirectoryServicesQueryCollectorConfigEntry dsQueryEntry = (DirectoryServicesQueryCollectorConfigEntry)lvi.Tag;
             lvi.SubItems[1].Text = GetQIValue(lvi, dsQueryEntry);
         }
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message, "Refresh", MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
     finally
     {
         Cursor.Current = Cursors.Default;
         lvwResults.EndUpdate();
     }
     //LoadDetailView();
     base.RefreshDisplayData();
 }
Beispiel #7
0
        private void LoadDetailView()
        {
            //lvwDetails.BeginUpdate();
            //lvwDetails.Items.Clear();
            //lvwDetails.Columns.Clear();
            if (lvwResults.SelectedItems.Count == 1 && lvwResults.SelectedItems[0].Tag is DirectoryServicesQueryCollectorConfigEntry)
            {
                DirectoryServicesQueryCollectorConfigEntry dsQueryEntry = (DirectoryServicesQueryCollectorConfigEntry)lvwResults.SelectedItems[0].Tag;
                try
                {
                    //Cursor.Current = Cursors.WaitCursor;
                    //DataSet ds = dsQueryEntry.RunDetailQuery();
                    //if (dsQueryEntry.ColumnNames == null || dsQueryEntry.ColumnNames.Count == 0)
                    //{
                    //    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);
                    //    }
                    //}
                    //else
                    //{
                    //    foreach (string colname in dsQueryEntry.ColumnNames)
                    //    {
                    //        ColumnHeader newColumn = new ColumnHeader();
                    //        newColumn.Text = colname;
                    //        lvwDetails.Columns.Add(newColumn);
                    //    }
                    //    foreach (DataRow r in ds.Tables[0].Rows)
                    //    {
                    //        string firstColumnName = dsQueryEntry.ColumnNames[0];
                    //        ListViewItem lvi = new ListViewItem(AttemptFieldRead(r, firstColumnName));
                    //        for (int i = 1; i < dsQueryEntry.ColumnNames.Count; i++)
                    //        {
                    //            lvi.SubItems.Add(AttemptFieldRead(r, dsQueryEntry.ColumnNames[i]));
                    //        }
                    //        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();
            toolStripButtonExportData.Enabled = lvwResults.SelectedItems.Count > 0;
        }