//--------------------------------------------------------------------- private void DisplayMamlKnowledgeArticle(ManagementPackKnowledgeArticle article) { try { NameTable nt = new NameTable(); XmlNamespaceManager nsmgr = new XmlNamespaceManager(nt); XslCompiledTransform transform = new XslCompiledTransform(); XmlDocument xsltDocument = new XmlDocument(); XmlReaderSettings settings = new XmlReaderSettings(); TextWriter articleTextWriter = new StringWriter(); nsmgr.AddNamespace("maml", "http://schemas.microsoft.com/maml/2004/10"); XmlParserContext context = new XmlParserContext(null, nsmgr, null, XmlSpace.None); settings.ConformanceLevel = ConformanceLevel.Fragment; XmlReader reader = XmlReader.Create(new StringReader(article.MamlContent), settings, context); xsltDocument.LoadXml(xslt); XmlTextWriter articleWriter = new XmlTextWriter(articleTextWriter); transform.Load(xsltDocument); transform.Transform(reader, articleWriter); knowledgeBrowser.DocumentText = articleTextWriter.ToString(); } catch (Exception) { } }
//--------------------------------------------------------------------- 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); } }
public NewTestDialog(ManagementGroup managementGroup, ManagementPackClass managementPackClass, MonitoringObject baseDestinationObject, Guid existingTestObjectId) { InitializeComponent(); ManagementGroup = managementGroup; if (existingTestObjectId == Guid.Empty) { if (baseDestinationObject == null) { throw new ArgumentNullException(nameof(baseDestinationObject)); } TargetClass = managementPackClass ?? throw new ArgumentNullException(nameof(managementPackClass)); } else { ExistingObject = ManagementGroup.EntityObjects.GetObject <MonitoringObject>(existingTestObjectId, ObjectQueryOptions.Default); TargetClass = ExistingObject.GetMostDerivedClasses().First(); } rtbDescription.Text = TargetClass.Description; try { ManagementPackKnowledgeArticle kb = TargetClass.GetKnowledgeArticle(Thread.CurrentThread.CurrentUICulture); btDocumentation.Enabled = kb != null; llLearnMore.Enabled = kb != null; } catch (ObjectNotFoundException) { btDocumentation.Enabled = false; llLearnMore.Enabled = false; } if (existingTestObjectId == Guid.Empty) { Text = $"New {(string.IsNullOrWhiteSpace(TargetClass.DisplayName) ? TargetClass.Name : TargetClass.DisplayName)}"; } else { Text = $"Edit {(string.IsNullOrWhiteSpace(TargetClass.DisplayName) ? TargetClass.Name : TargetClass.DisplayName)}"; } CreatableEnterpriseManagementObject testObject = new CreatableEnterpriseManagementObject(managementGroup, TargetClass); // initialize or load other properties if (existingTestObjectId == Guid.Empty) { testObject[IDs.TestBaseClassProperties.TestIdPropertyId].Value = Guid.NewGuid(); testObject[SystemId.EntityClassProperties.DisplayNamePropertyId].Value = string.IsNullOrWhiteSpace(TargetClass.DisplayName) ? TargetClass.Name : TargetClass.DisplayName; // bind to host object -- from explicit parent testObject[IDs.FullyQualifiedDomainNameClassProperties.FullyQualifiedDomainNamePropertyId].Value = baseDestinationObject[IDs.FullyQualifiedDomainNameClassProperties.FullyQualifiedDomainNamePropertyId].Value; // parent key 1 testObject[IDs.FullyQualifiedDomainNameClassProperties.TargetIndexPropertyId].Value = baseDestinationObject[IDs.FullyQualifiedDomainNameClassProperties.TargetIndexPropertyId].Value; // parent key 2 } else { // host object binding will be done automatically as a part of property copying foreach (ManagementPackProperty mpProperty in ExistingObject.GetProperties()) { testObject[mpProperty].Value = ExistingObject[mpProperty].Value; } } CreatableObjectAdapter = new CreatableObjectAdapter(testObject); pgObjectEditor.SelectedObject = CreatableObjectAdapter; }