private void WordDiscoverHelper(string elementName, bool wordDomDiscovery) { MSXML2.IXMLDOMDocument2 expectedXML = null; MSXML2.IXMLDOMDocument2 resultantXML = null; MSXML2.IXMLDOMNode expectedMetadataNode = null; MSXML2.IXMLDOMNode resultantMetadataNode = null; IMWMetadataElements elements = null; try { string[] testFiles = System.IO.Directory.GetFiles(m_testPath, "TestDocument*.doc"); elements = new CMetadataElementsClass(); elements.SelectNoElements(); elements[elementName].Enabled = true; foreach(string testFile in testFiles) { expectedXML = wordDomDiscovery ? DoWordDomDiscover(testFile, elements) : DoWordBinaryDiscovery(testFile, elements); Assert.IsNotNull(expectedXML, "Expected a valid instance of IXMLDOMDocument for the expectedXML"); resultantXML = DoWordBddaDiscover(testFile, elements); Assert.IsNotNull(expectedXML, "Expected a valid instance of IXMLDOMDocument for the resultantXML"); if(elementName.ToLower().Equals("reviewers")) elementName = "DocumentReviewers"; else if(elementName.ToLower().Equals("template")) elementName = "AttachedTemplate"; else if(elementName.ToLower().Equals("autoversion")) elementName = "AutoWordVersioning"; else if(elementName.ToLower().Equals("documentvariables")) elementName = "Variables"; string nodeName = string.Format(@"Metadata/Documents/Document/{0}", elementName); expectedMetadataNode = expectedXML.selectSingleNode(nodeName); Assert.IsNotNull(expectedMetadataNode, string.Format("Expected a valid instance of IXMLDOMNode for the expected [{0}]", nodeName)); SaveDiscoveredData("Expected", elementName, expectedMetadataNode.xml); resultantMetadataNode = resultantXML.selectSingleNode(nodeName); Assert.IsNotNull(resultantMetadataNode, string.Format("Expected a valid instance of IXMLDOMNode for the resultant [{0}]", nodeName)); SaveDiscoveredData("Resultant", elementName, resultantMetadataNode.xml); Assert.AreEqual(expectedMetadataNode.childNodes.length, resultantMetadataNode.childNodes.length); } } finally { Marshal.ReleaseComObject(expectedXML); Marshal.ReleaseComObject(resultantXML); Marshal.ReleaseComObject(expectedMetadataNode); Marshal.ReleaseComObject(resultantMetadataNode); Marshal.ReleaseComObject(elements); } }
protected CMetadataElements GetMacrosMetaDataElementToClean(CleanActionPropertySet properties) { CMetadataElements MetaDataElements = null; using (new WsActivationContext()) { MetaDataElements = new CMetadataElementsClass(); List<string> metawallPropNames = properties.GetMetawallPropertyList(); foreach (KeyValuePair<string, IActionProperty> kvp in properties) { string key = kvp.Key; if (key == CleanOption.Macros) { IActionProperty property = kvp.Value; if (!metawallPropNames.Contains(key)) continue; IMWMetadataElement element = MetaDataElements[key]; if (element != null) { element.Enabled = (bool)property.Value; } } } } return MetaDataElements; }
private Workshare.Protect.Api.CMetadataElementsClass SetupElements() { CMetadataElementsClass elems = new CMetadataElementsClass(); Assert.IsNotNull( elems , "CMetadataElementsClass instance should not be null."); //specify stuff to clean elems.SelectAllElements(); Assert.IsTrue( elems.Count == 24, "Count value after call to SelectAllElements should be equal to 24."); foreach( string elemToIgnore in m_CleaningElemsToIgnore ) { elems[ elemToIgnore ] .Enabled = false; } return elems; }