예제 #1
0
		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;
        }
예제 #3
0
		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;
		}