예제 #1
0
        //---------------------------------------------------------------------
        private void DisplayAlertDescriptionIfApplicable(ManagementPackElement element)
        {
            if (!(element is ManagementPackMonitor))
            {
                return;
            }

            ManagementPackMonitor monitor = (ManagementPackMonitor)element;

            m_alertDescriptionTextBox.DocumentText = @"<HTML></HTML>";

            if (monitor.AlertSettings != null && monitor.AlertSettings.AlertMessage != null)
            {
                string alertDescription;

                alertDescription = m_managementPack.GetStringResource(monitor.AlertSettings.AlertMessage.Name).Description;

                if (alertDescription == null)
                {
                    return;
                }

                if (alertDescription.IndexOf("\r\n") == 0)
                {
                    alertDescription = alertDescription.Remove(0, 2);
                    alertDescription = alertDescription.TrimStart(new char[] { ' ' });
                }

                m_alertDescriptionTextBox.DocumentText = string.Format(@"<HTML><BODY>{0}</BODY></HTML>", alertDescription);
            }
        }
예제 #2
0
        //---------------------------------------------------------------------
        private void DisplayImageIfApplicable(ManagementPackElement element)
        {
            if (!(element is ManagementPackResource))
            {
                return;
            }

            ManagementPackResource resource = (ManagementPackResource)element;


            if (resource.FileName != null)
            {
                if (resource.XmlTag.Equals("Image", StringComparison.InvariantCultureIgnoreCase))
                {
                    IDictionary <string, Stream> streams = m_bundle.GetStreams(m_managementPack);
                    foreach (var stream in streams)
                    {
                        if (stream.Key.Equals(resource.Name, StringComparison.InvariantCultureIgnoreCase))
                        {
                            Image pic = Image.FromStream(stream.Value);
                            m_ImageResourcePictureBox.BackColor = Color.White;
                            m_ImageResourcePictureBox.Image     = pic;
                            m_ImageResourcePictureBox.Visible   = true;
                        }
                    }
                }
                else
                {
                    m_ImageResourcePictureBox.Visible = false;
                }
            }
        }
예제 #3
0
        //---------------------------------------------------------------------
        private string GetOverridenWorkflowType(
            ManagementPackElement managementPackElement
            )
        {
            string workflowType;

            if (managementPackElement is ManagementPackMonitor)
            {
                workflowType = "Monitor";
            }
            else if (managementPackElement is ManagementPackRule)
            {
                workflowType = "Rule";
            }
            else if (managementPackElement is ManagementPackDiscovery)
            {
                workflowType = "Discovery";
            }
            else if (managementPackElement is ManagementPackDiagnostic)
            {
                workflowType = "Diagnostic";
            }
            else if (managementPackElement is ManagementPackRecovery)
            {
                workflowType = "Recovery";
            }
            else
            {
                workflowType = managementPackElement.GetType().ToString();
            }

            return(workflowType);
        }
예제 #4
0
        //---------------------------------------------------------------------
        internal void AddOverride(
            ManagementPackOverride  mpOverride,
            ManagementPackElement   overridenElement
            )
        {
            if (!m_mpWorkflows.ContainsKey(overridenElement.Id))
            {
                m_mpWorkflows.Add(overridenElement.Id, new MPWorkflow(overridenElement));
            }

            m_mpWorkflows[overridenElement.Id].AddOverride(mpOverride);
        }
예제 #5
0
        //---------------------------------------------------------------------
        internal void AddOverride(
            ManagementPackOverride mpOverride,
            ManagementPackElement overridenElement
            )
        {
            if (!m_mpWorkflows.ContainsKey(overridenElement.Id))
            {
                m_mpWorkflows.Add(overridenElement.Id, new MPWorkflow(overridenElement));
            }

            m_mpWorkflows[overridenElement.Id].AddOverride(mpOverride);
        }
예제 #6
0
 //---------------------------------------------------------------------
 internal static string GetBestElementName(
     ManagementPackElement element
     )
 {
     if (element.DisplayName != null && element.DisplayName.Length > 0)
     {
         return(element.DisplayName);
     }
     else
     {
         return(element.Name);
     }
 }
예제 #7
0
 //---------------------------------------------------------------------
 internal static string GetBestElementName(
     ManagementPackElement element
     )
 {
     if (element.DisplayName != null && element.DisplayName.Length > 0)
     {
         return (element.DisplayName);
     }
     else
     {
         return (element.Name);
     }
 }
예제 #8
0
        //---------------------------------------------------------------------
        private void DisplayAdvisorQueryIfApplicable(ManagementPackElement element)
        {
            if (!(element is ManagementPackRule))
            {
                return;
            }

            ManagementPackRule rule = (ManagementPackRule)element;


            DataTable t = m_dataset.Tables["Rules"];



            m_QueryResourceTextBox.Text = String.Empty;
        }
예제 #9
0
        //---------------------------------------------------------------------
        private void DisplayRawXml(ManagementPackElement element)
        {
            StringWriter  stringWriter  = new StringWriter();
            XmlTextWriter xmlTextWriter = new System.Xml.XmlTextWriter(stringWriter);
            string        tempFileName  = GetTempFileName();
            StreamWriter  writer        = File.CreateText(tempFileName);

            mpElementXml.DocumentText = string.Empty;

            element.WriteXml(xmlTextWriter);
            writer.Write(stringWriter.ToString());

            writer.Flush();
            writer.Close();

            mpElementXml.Url = new Uri(tempFileName);
        }
예제 #10
0
        //---------------------------------------------------------------------
        internal void AddOverride(
            ManagementPackClass mpClass,
            ManagementPackElement overridenElement,
            ManagementPackOverride mpOverride
            )
        {
            Debug.Assert(mpClass != null);
            Debug.Assert(overridenElement != null);
            Debug.Assert(mpOverride != null);

            if (!m_classCollection.ContainsKey(mpClass.Id))
            {
                m_classCollection.Add(mpClass.Id, new MPClass(mpClass));
            }

            m_classCollection[mpClass.Id].AddOverride(mpOverride, overridenElement);
        }
예제 #11
0
        //---------------------------------------------------------------------
        private void DisplayKnowledgeArticle(ManagementPackElement element)
        {
            knowledgeBrowser.DocumentText = string.Empty;

            ManagementPackKnowledgeArticle article = element.GetKnowledgeArticle("ENU");

            if (article == null)
            {
                return;
            }

            if (article.HtmlContent != null && article.HtmlContent.Length > 0)
            {
                knowledgeBrowser.DocumentText = article.HtmlContent;
            }
            else if (article.MamlContent != null && article.MamlContent.Length > 0)
            {
                DisplayMamlKnowledgeArticle(article);
            }
        }
예제 #12
0
        //---------------------------------------------------------------------
        private void DisplayScriptIfApplicable(ManagementPackElement element)
        {
            if (!(element is ManagementPackResource))
            {
                return;
            }

            ManagementPackResource resource = (ManagementPackResource)element;

            m_ScriptResourceTextBox.Text = String.Empty;


            if (resource.FileName != null)
            {
                // works for now... maybe with "config" files (or "deployableresource"s) we might want to show in browser control since it is XML...
                if (resource.FileName.EndsWith(".sql", StringComparison.InvariantCultureIgnoreCase) ||
                    resource.FileName.EndsWith(".ps1", StringComparison.InvariantCultureIgnoreCase) ||
                    resource.FileName.EndsWith(".config", StringComparison.InvariantCultureIgnoreCase))
                {
                    string ScriptBody = String.Empty;

                    IDictionary <string, Stream> streams = m_bundle.GetStreams(m_managementPack);
                    foreach (var stream in streams)
                    {
                        if (stream.Key.Equals(resource.Name, StringComparison.InvariantCultureIgnoreCase))
                        {
                            StreamReader reader = new StreamReader(stream.Value);
                            ScriptBody = reader.ReadToEnd();
                        }
                    }


                    if (String.IsNullOrEmpty(ScriptBody))
                    {
                        return;
                    }

                    m_ScriptResourceTextBox.Text = ScriptBody;
                }
            }
        }
예제 #13
0
        //---------------------------------------------------------------------
        internal static string GetBestMPElementName(
            ManagementPackElement element
            )
        {
            if (element.DisplayName == null || element.DisplayName.Length == 0)
            {
                return(element.Name);
            }
            else
            {
                string elementName = element.DisplayName;

                elementName = elementName.Replace("\r\n", "");

                elementName = elementName.TrimStart(new char[] { ' ' });

                elementName = elementName.Replace("\t", "");

                return(elementName);
            }
        }
예제 #14
0
        //---------------------------------------------------------------------
        internal static string GetBestMPElementName(
            ManagementPackElement element
            )
        {
            if (element.DisplayName == null || element.DisplayName.Length == 0)
            {
                return (element.Name);
            }
            else
            {
                string elementName = element.DisplayName;

                elementName = elementName.Replace("\r\n", "");

                elementName = elementName.TrimStart(new char[] { ' ' });

                elementName = elementName.Replace("\t", "");

                return (elementName);
            }
        }
예제 #15
0
        //---------------------------------------------------------------------
        private void DisplayAlertDescriptionIfApplicable(ManagementPackElement element)
        {
            if (!(element is ManagementPackMonitor))
            {
                return;
            }

            ManagementPackMonitor monitor = (ManagementPackMonitor)element;

            m_alertDescriptionTextBox.DocumentText = @"<HTML></HTML>";

            if (monitor.AlertSettings != null && monitor.AlertSettings.AlertMessage != null)
            {
                string alertDescription = null;
                foreach (ManagementPack mp in m_managementPack.Values)
                {
                    if (mp.Name == monitor.GetManagementPack().Name)
                    {
                        try
                        {
                            alertDescription = mp.GetStringResource(monitor.AlertSettings.AlertMessage.Name).Description;
                        }
                        catch { }

                        if (alertDescription == null)
                        {
                            return;
                        }

                        if (alertDescription.IndexOf("\r\n") == 0)
                        {
                            alertDescription = alertDescription.Remove(0, 2);
                            alertDescription = alertDescription.TrimStart(new char[] { ' ' });
                        }

                        m_alertDescriptionTextBox.DocumentText = string.Format(@"<HTML><BODY>{0}</BODY></HTML>", alertDescription);
                    }
                }
            }
        }
예제 #16
0
        //---------------------------------------------------------------------
        internal void AddOverride(
            ManagementPackClass             mpClass,
            ManagementPackElement           overridenElement,
            ManagementPackOverride          mpOverride
            )
        {
            Debug.Assert(mpClass != null);
            Debug.Assert(overridenElement != null);
            Debug.Assert(mpOverride != null);

            if (!m_classCollection.ContainsKey(mpClass.Id))
            {
                m_classCollection.Add(mpClass.Id, new MPClass(mpClass));
            }

            m_classCollection[mpClass.Id].AddOverride(mpOverride, overridenElement);
        }
예제 #17
0
 //---------------------------------------------------------------------
 internal static string GetBestMPElementInternalName(
     ManagementPackElement element
     )
 {
     return(element.Name);
 }
예제 #18
0
        //---------------------------------------------------------------------
        private void DisplayAdvisorQueryIfApplicable(ManagementPackElement element)
        {
            if (!(element is ManagementPackRule))
            {
                return;
            }

            ManagementPackRule rule = (ManagementPackRule)element;

            DataTable t = m_dataset.Tables["Rules"];

            m_QueryResourceTextBox.Text = String.Empty;
        }
예제 #19
0
        //---------------------------------------------------------------------
        private void DisplayScriptIfApplicable(ManagementPackElement element)
        {
            /*  if (!(element is ManagementPackResource))
            {
                return;
            }

            ManagementPackResource resource = (ManagementPackResource)element;

            m_ScriptResourceTextBox.Text = String.Empty;

            if (resource.FileName != null)
            {
                // works for now... maybe with "config" files (or "deployableresource"s) we might want to show in browser control since it is XML...
                if (resource.FileName.EndsWith(".sql", StringComparison.InvariantCultureIgnoreCase) ||
                    resource.FileName.EndsWith(".ps1", StringComparison.InvariantCultureIgnoreCase) ||
                    resource.FileName.EndsWith(".config", StringComparison.InvariantCultureIgnoreCase))
                {
                    string ScriptBody = String.Empty;

                    IDictionary<string, Stream> streams = m_bundle.GetStreams(m_managementPack);
                    foreach (var stream in streams)
                    {
                        if (stream.Key.Equals(resource.Name, StringComparison.InvariantCultureIgnoreCase))
                        {
                            StreamReader reader = new StreamReader(stream.Value);
                            ScriptBody = reader.ReadToEnd();
                        }
                    }

                    if (String.IsNullOrEmpty(ScriptBody))
                    {
                        return;
                    }

                    m_ScriptResourceTextBox.Text = ScriptBody;
                }
            } */
        }
예제 #20
0
        //---------------------------------------------------------------------
        private string GetOverridenWorkflowType(
            ManagementPackElement managementPackElement
            )
        {
            string workflowType;

            if (managementPackElement is ManagementPackMonitor)
            {
                workflowType = "Monitor";
            }
            else if (managementPackElement is ManagementPackRule)
            {
                workflowType = "Rule";
            }
            else if (managementPackElement is ManagementPackDiscovery)
            {
                workflowType = "Discovery";
            }
            else if (managementPackElement is ManagementPackDiagnostic)
            {
                workflowType = "Diagnostic";
            }
            else if (managementPackElement is ManagementPackRecovery)
            {
                workflowType = "Recovery";
            }
            else
            {
                workflowType = managementPackElement.GetType().ToString();
            }

            return (workflowType);
        }
예제 #21
0
        //---------------------------------------------------------------------
        private void DisplayImageIfApplicable(ManagementPackElement element)
        {
            /*
            if (!(element is ManagementPackResource))
            {
                return;
            }

            ManagementPackResource resource = (ManagementPackResource)element;

            if (resource.FileName != null)
            {
                if (resource.XmlTag.Equals("Image", StringComparison.InvariantCultureIgnoreCase))
                {
                    IDictionary<string, Stream> streams = m_bundle.GetStreams(m_managementPack);
                    foreach (var stream in streams)
                    {
                        if (stream.Key.Equals(resource.Name, StringComparison.InvariantCultureIgnoreCase))
                        {
                            Image pic = Image.FromStream(stream.Value);
                            m_ImageResourcePictureBox.BackColor = Color.White;
                            m_ImageResourcePictureBox.Image = pic;
                            m_ImageResourcePictureBox.Visible = true;
                        }
                    }
                }
                else
                {
                    m_ImageResourcePictureBox.Visible = false;
                }
            } */
        }
예제 #22
0
 //---------------------------------------------------------------------
 internal MPWorkflow(ManagementPackElement mpElement)
 {
     m_overrides = new List <ManagementPackOverride>();
     m_mpElement = mpElement;
 }
예제 #23
0
        //---------------------------------------------------------------------
        private void DisplayKnowledgeArticle(ManagementPackElement element)
        {
            ManagementPackKnowledgeArticle article = null;
            knowledgeBrowser.DocumentText = string.Empty;
            try
            {
                article = element.GetKnowledgeArticle("ENU");
            }
            catch
            {

            }

            if (article == null)
            {
                return;
            }

            if (article.HtmlContent != null && article.HtmlContent.Length > 0)
            {
                knowledgeBrowser.DocumentText = article.HtmlContent;
            }
            else if (article.MamlContent != null && article.MamlContent.Length > 0)
            {
                DisplayMamlKnowledgeArticle(article);
            }
        }
예제 #24
0
 //---------------------------------------------------------------------
 internal MPWorkflow(ManagementPackElement mpElement)
 {
     m_overrides     = new List<ManagementPackOverride>();
     m_mpElement     = mpElement;
 }
예제 #25
0
        //---------------------------------------------------------------------
        private void DisplayRawXml(ManagementPackElement element)
        {
            StringWriter    stringWriter    = new StringWriter();
            XmlTextWriter   xmlTextWriter   = new System.Xml.XmlTextWriter(stringWriter);
            string          tempFileName    = GetTempFileName();
            StreamWriter    writer          = File.CreateText(tempFileName);

            mpElementXml.DocumentText = string.Empty;

            element.WriteXml(xmlTextWriter);
            writer.Write(stringWriter.ToString());

            writer.Flush();
            writer.Close();

            mpElementXml.Url = new Uri(tempFileName);
        }