/*************************************************************************** Copyright (c) Microsoft Corporation 2011. This code is licensed using the Microsoft Public License (Ms-PL). The text of the license can be found here: http://www.microsoft.com/resources/sharedsource/licensingbasics/publiclicense.mspx ***************************************************************************/ using System; using System.Management.Automation; namespace OpenXmlPowerTools.Commands { /// /// Get-OpenXmlCustomXmlData cmdlet /// [Cmdlet(VerbsCommon.Get, "OpenXmlCustomXmlData")] [OutputType("XDocument")] public class GetOpenXmlCustomXmlData : PowerToolsReadOnlyCmdlet { #region Parameters string xmlPartName; /// /// Part parameter /// [Parameter( Position = 1, Mandatory = true, HelpMessage = "Custom Xml part name") ] [ValidateNotNullOrEmpty] public string Part { get { return xmlPartName; } set { xmlPartName = value; } } #endregion #region Cmdlet Overrides protected override void ProcessRecord() { foreach (var document in AllDocuments("Get-OpenXmlCustomXmlData")) { try { if (!(document is WmlDocument)) throw new PowerToolsDocumentException("Not a wordprocessing document."); WriteObject(CustomXmlAccessor.Find((WmlDocument)document, xmlPartName), true); } catch (Exception e) { WriteError(PowerToolsExceptionHandling.GetExceptionErrorRecord(e, document)); } } } #endregion } }