// =========================================================================================================== /// <summary> /// Applies the current template as an open XML ".pnp" package on the specified web /// </summary> /// <param name="web">The <b>Web</b> on which to apply the template</param> /// <param name="templateProvider">The <b>XMLTemplateProvider</b> that is mapped to the client's working directory</param> // =========================================================================================================== private void ApplyOpenXML(Web web, XMLTemplateProvider templateProvider) { logger.Info("Applying open XML package '{0}' from file '{1}'", this.Name, this.Path); // -------------------------------------------------- // Formats the template's execution rendering // -------------------------------------------------- ProvisioningTemplateApplyingInformation ptai = GetTemplateApplyInfo(); // -------------------------------------------------- // Replaces the regular provider by an OpenXml one // -------------------------------------------------- string workingDirectory = templateProvider.Connector.Parameters[PARAMETER_CONNECTION_STRING].ToString(); FileSystemConnector fileSystemConnector = new FileSystemConnector(workingDirectory, ""); OpenXMLConnector openXmlConnector = new OpenXMLConnector(this.Path, fileSystemConnector); XMLTemplateProvider openXmlTemplateProvider = new XMLOpenXMLTemplateProvider(openXmlConnector); // -------------------------------------------------- // Loops through all templates within the .pnp package // -------------------------------------------------- List<ProvisioningTemplate> templates = openXmlTemplateProvider.GetTemplates(); foreach (ProvisioningTemplate template in templates) { logger.Info("Applying template '{0}' from file '{1}'", template.Id, this.Path); // -------------------------------------------------- // Applies the template // -------------------------------------------------- template.Connector = openXmlTemplateProvider.Connector; web.ApplyProvisioningTemplate(template, ptai); } }
public void OpenXMLFileDuplicationTest() { var fileSystemConnector = new FileSystemConnector( String.Format(@"{0}\..\..\Resources", AppDomain.CurrentDomain.BaseDirectory), "Templates"); int retries = 3; while (retries-- > 0) { var openXMLConnector = new OpenXMLConnector(packageFileName, fileSystemConnector, "OfficeDevPnP Automated Test"); SaveFileInPackage(fileSystemConnector.Parameters[FileConnectorBase.CONNECTIONSTRING] + @"\garagelogo.png", "Images\\OpenXMLFileDuplicationTest", openXMLConnector); SaveFileInPackage(fileSystemConnector.Parameters[FileConnectorBase.CONNECTIONSTRING] + @"\garagebg.jpg", "Images/OpenXMLFileDuplicationTest", openXMLConnector); var files = openXMLConnector.GetFiles("Images\\OpenXMLFileDuplicationTest"); Assert.IsTrue(files.Count == 2); files = openXMLConnector.GetFiles("Images/OpenXMLFileDuplicationTest"); Assert.IsTrue(files.Count == 2); if (openXMLConnector is ICommitableFileConnector) { ((ICommitableFileConnector)openXMLConnector).Commit(); } } }
public void OpenXMLDeleteFileFromTemplate() { var fileSystemConnector = new FileSystemConnector( String.Format(@"{0}\..\..\Resources", AppDomain.CurrentDomain.BaseDirectory), "Templates"); var openXMLConnector = new OpenXMLConnector(packageFileName, fileSystemConnector); openXMLConnector.DeleteFile("garagelogo.png", "Images"); var image1 = openXMLConnector.GetFileStream("garagelogo.png", "Images"); Assert.IsNull(image1); }
private static void OpenXMLSaveTemplateInternal() { var fileSystemConnector = new FileSystemConnector( String.Format(@"{0}\..\..\Resources", AppDomain.CurrentDomain.BaseDirectory), "Templates"); var openXMLConnector = new OpenXMLConnector(packageFileName, fileSystemConnector, "OfficeDevPnP Automated Test"); SaveFileInPackage(fileSystemConnector.Parameters[FileConnectorBase.CONNECTIONSTRING] + @"\Templates\ProvisioningSchema-2015-12-FullSample-02.xml", "", openXMLConnector); SaveFileInPackage(fileSystemConnector.Parameters[FileConnectorBase.CONNECTIONSTRING] + @"\garagelogo.png", "Images", openXMLConnector); SaveFileInPackage(fileSystemConnector.Parameters[FileConnectorBase.CONNECTIONSTRING] + @"\garagebg.jpg", "Images", openXMLConnector); if (openXMLConnector is ICommitableFileConnector) { ((ICommitableFileConnector)openXMLConnector).Commit(); } }
public void OpenXMLLoadTemplateOriginal() { var fileSystemConnector = new FileSystemConnector( String.Format(@"{0}\..\..\Resources", AppDomain.CurrentDomain.BaseDirectory), "Templates"); var openXMLConnector = new OpenXMLConnector(packageFileNameBackwardsCompatibility, fileSystemConnector); var templateFile = openXMLConnector.GetFileStream("ProvisioningSchema-2015-12-FullSample-02.xml"); XMLPnPSchemaV201512Formatter formatter = new XMLPnPSchemaV201512Formatter(); Boolean checkTemplate = formatter.IsValid(templateFile); Assert.IsTrue(checkTemplate); var image1 = openXMLConnector.GetFileStream("garagelogo.png", "Images"); Assert.IsNotNull(image1); var image2 = openXMLConnector.GetFileStream("garagebg.jpg", "Images"); Assert.IsNotNull(image2); }
public void OpenXMLGetFileFromTemplate() { var fileSystemConnector = new FileSystemConnector(String.Format(@"{0}\..\..\Resources", AppDomain.CurrentDomain.BaseDirectory), "Templates"); var openXMLConnector = new OpenXMLConnector(packageFileName, fileSystemConnector); var file = openXMLConnector.GetFile("garagebg.jpg"); Assert.IsNull(file); file = openXMLConnector.GetFile("garagebg.jpg", "Images"); Assert.IsNotNull(file); Stream stream = openXMLConnector.GetFileStream("garagebg.jpg"); Assert.IsNull(stream); stream = openXMLConnector.GetFileStream("garagebg.jpg", "Images"); Assert.IsNotNull(stream.Length > 0); }
public XMLOpenXMLTemplateProvider(OpenXMLConnector openXMLConnector) : base(openXMLConnector) { }
public void OpenXMLGetFilesFromFolder() { var fileSystemConnector = new FileSystemConnector( String.Format(@"{0}\..\..\Resources", AppDomain.CurrentDomain.BaseDirectory), "Templates"); var openXMLConnector = new OpenXMLConnector(packageFileName, fileSystemConnector, "OfficeDevPnP Automated Test"); SaveFileInPackage(fileSystemConnector.Parameters[FileConnectorBase.CONNECTIONSTRING] + @"\garagelogo.png", "Images", openXMLConnector); SaveFileInPackage(fileSystemConnector.Parameters[FileConnectorBase.CONNECTIONSTRING] + @"\garagelogo.png", "Images\\Test", openXMLConnector); SaveFileInPackage(fileSystemConnector.Parameters[FileConnectorBase.CONNECTIONSTRING] + @"\garagebg.jpg", "Images/Test", openXMLConnector); if (openXMLConnector is ICommitableFileConnector) { ((ICommitableFileConnector)openXMLConnector).Commit(); } openXMLConnector = new OpenXMLConnector(packageFileName, fileSystemConnector, "OfficeDevPnP Automated Test"); var folders = openXMLConnector.GetFolders(); Assert.IsTrue(folders.Count > 0); Assert.IsTrue(folders.Exists(s => string.Equals(s, "Images", StringComparison.OrdinalIgnoreCase))); var files = openXMLConnector.GetFiles("Images"); Assert.IsTrue(files.Count > 0); files = openXMLConnector.GetFiles("Images\\Test"); Assert.IsTrue(files.Count == 2); files = openXMLConnector.GetFiles("Images/Test"); Assert.IsTrue(files.Count == 2); }