public override List<ProvisioningTemplate> GetTemplates(ITemplateFormatter formatter) { List<ProvisioningTemplate> result = new List<ProvisioningTemplate>(); // Retrieve the list of available template files List<String> files = this.Connector.GetFiles(); // For each file foreach (var file in files) { if (file.EndsWith(".xml", StringComparison.InvariantCultureIgnoreCase)) { ProvisioningTemplate provisioningTemplate; try { // Use the GetTemplate method to share the same logic provisioningTemplate = this.GetTemplate(file, formatter); } catch (ApplicationException) { Log.Warning(Constants.LOGGING_SOURCE_FRAMEWORK_PROVISIONING, CoreResources.Provisioning_Providers_XML_InvalidFileFormat, file); continue; } if (provisioningTemplate != null) { // Add the template to the result result.Add(provisioningTemplate); } } } return (result); }
public override List<ProvisioningTemplate> GetTemplates(ITemplateFormatter formatter) { List<ProvisioningTemplate> result = new List<ProvisioningTemplate>(); // Retrieve the list of available template files List<String> files = this.Connector.GetFiles(); // For each file foreach (var file in files) { if (file.EndsWith(".json", StringComparison.InvariantCultureIgnoreCase)) { // Load it from a File Stream Stream stream = this.Connector.GetFileStream(file); // And convert it into a ProvisioningTemplate ProvisioningTemplate provisioningTemplate = formatter.ToProvisioningTemplate(stream); // Add the template to the result result.Add(provisioningTemplate); } } return (result); }
public override ProvisioningTemplate GetTemplate(string uri, string identifier, ITemplateFormatter formatter) { if (String.IsNullOrEmpty(uri)) { throw new ArgumentException("uri"); } // Get the XML document from a File Stream Stream stream = this.Connector.GetFileStream(uri); if (stream == null) { throw new ApplicationException(string.Format(CoreResources.Provisioning_Formatter_Invalid_Template_URI, uri)); } //Resolve xml includes if any stream = ResolveXIncludes(stream); // And convert it into a ProvisioningTemplate ProvisioningTemplate provisioningTemplate = formatter.ToProvisioningTemplate(stream, identifier); // Store the identifier of this template, is needed for latter save operation this.Uri = uri; return (provisioningTemplate); }
public override ProvisioningTemplate GetTemplate(string uri, string identifier, ITemplateFormatter formatter) { if (String.IsNullOrEmpty(uri)) { throw new ArgumentException("uri"); } // Get the XML document from a File Stream Stream stream = this.Connector.GetFileStream(uri); // And convert it into a ProvisioningTemplate ProvisioningTemplate provisioningTemplate = formatter.ToProvisioningTemplate(stream, identifier); // Store the identifier of this template, is needed for latter save operation this.Uri = uri; return (provisioningTemplate); }
protected override void BeginProcessing() { if (!System.IO.Path.IsPathRooted(Path)) { Path = System.IO.Path.Combine(SessionState.Path.CurrentFileSystemLocation.Path, Path); } if (this.MyInvocation.BoundParameters.ContainsKey("Out")) { if (!System.IO.Path.IsPathRooted(Out)) { Out = System.IO.Path.Combine(SessionState.Path.CurrentFileSystemLocation.Path, Out); } } FileInfo fileInfo = new FileInfo(Path); XMLTemplateProvider provider = new XMLFileSystemTemplateProvider(fileInfo.DirectoryName, ""); var provisioningTemplate = provider.GetTemplate(fileInfo.Name); if (provisioningTemplate != null) { ITemplateFormatter formatter = null; switch (ToSchema) { case XMLPnPSchemaVersion.LATEST: { formatter = XMLPnPSchemaFormatter.LatestFormatter; break; } case XMLPnPSchemaVersion.V201503: { #pragma warning disable CS0618 // Type or member is obsolete formatter = XMLPnPSchemaFormatter.GetSpecificFormatter(XMLConstants.PROVISIONING_SCHEMA_NAMESPACE_2015_03); #pragma warning restore CS0618 // Type or member is obsolete break; } case XMLPnPSchemaVersion.V201505: { formatter = XMLPnPSchemaFormatter.GetSpecificFormatter(XMLConstants.PROVISIONING_SCHEMA_NAMESPACE_2015_05); break; } case XMLPnPSchemaVersion.V201508: { formatter = XMLPnPSchemaFormatter.GetSpecificFormatter(XMLConstants.PROVISIONING_SCHEMA_NAMESPACE_2015_08); break; } case XMLPnPSchemaVersion.V201512: { formatter = XMLPnPSchemaFormatter.GetSpecificFormatter(XMLConstants.PROVISIONING_SCHEMA_NAMESPACE_2015_12); break; } } if (!string.IsNullOrEmpty(Out)) { if (System.IO.File.Exists(Out)) { if (Force || ShouldContinue(string.Format(Resources.File0ExistsOverwrite, Out), Resources.Confirm)) { System.IO.File.WriteAllText(Out, provisioningTemplate.ToXML(formatter), Encoding); } } else { System.IO.File.WriteAllText(Out, provisioningTemplate.ToXML(formatter), Encoding); } } else { WriteObject(provisioningTemplate.ToXML(formatter)); } } }
public abstract ProvisioningTemplate GetTemplate(string uri, string identifier, ITemplateFormatter formatter, ITemplateProviderExtension[] extensions);
public override void SaveAs(ProvisioningHierarchy hierarchy, string uri, ITemplateFormatter formatter = null) { throw new NotImplementedException(); }
public override ProvisioningTemplate GetTemplate(string uri, string identifier, ITemplateFormatter formatter) { return(this.GetTemplate(uri, null, formatter, null)); }
public static ITemplateFormatter GetFormatter(XMLPnPSchemaVersion schema) { ITemplateFormatter formatter = null; switch (schema) { case XMLPnPSchemaVersion.LATEST: { formatter = XMLPnPSchemaFormatter.LatestFormatter; break; } case XMLPnPSchemaVersion.V201503: { #pragma warning disable CS0618 // Type or member is obsolete formatter = XMLPnPSchemaFormatter.GetSpecificFormatter(XMLConstants.PROVISIONING_SCHEMA_NAMESPACE_2015_03); #pragma warning restore CS0618 // Type or member is obsolete break; } case XMLPnPSchemaVersion.V201505: { #pragma warning disable CS0618 // Type or member is obsolete formatter = XMLPnPSchemaFormatter.GetSpecificFormatter(XMLConstants.PROVISIONING_SCHEMA_NAMESPACE_2015_05); #pragma warning restore CS0618 // Type or member is obsolete break; } case XMLPnPSchemaVersion.V201508: { #pragma warning disable CS0618 // Type or member is obsolete formatter = XMLPnPSchemaFormatter.GetSpecificFormatter(XMLConstants.PROVISIONING_SCHEMA_NAMESPACE_2015_08); #pragma warning restore CS0618 // Type or member is obsolete break; } case XMLPnPSchemaVersion.V201512: { #pragma warning disable CS0618 // Type or member is obsolete formatter = XMLPnPSchemaFormatter.GetSpecificFormatter(XMLConstants.PROVISIONING_SCHEMA_NAMESPACE_2015_12); #pragma warning restore CS0618 // Type or member is obsolete break; } case XMLPnPSchemaVersion.V201605: { #pragma warning disable CS0618 // Type or member is obsolete formatter = XMLPnPSchemaFormatter.GetSpecificFormatter(XMLConstants.PROVISIONING_SCHEMA_NAMESPACE_2016_05); #pragma warning restore CS0618 // Type or member is obsolete break; } case XMLPnPSchemaVersion.V201705: { #pragma warning disable CS0618 // Type or member is obsolete formatter = XMLPnPSchemaFormatter.GetSpecificFormatter(XMLConstants.PROVISIONING_SCHEMA_NAMESPACE_2017_05); #pragma warning restore CS0618 // Type or member is obsolete break; } case XMLPnPSchemaVersion.V201801: { #pragma warning disable CS0618 // Type or member is obsolete formatter = XMLPnPSchemaFormatter.GetSpecificFormatter(XMLConstants.PROVISIONING_SCHEMA_NAMESPACE_2018_01); #pragma warning restore CS0618 // Type or member is obsolete break; } case XMLPnPSchemaVersion.V201805: { #pragma warning disable CS0618 // Type or member is obsolete formatter = XMLPnPSchemaFormatter.GetSpecificFormatter(XMLConstants.PROVISIONING_SCHEMA_NAMESPACE_2018_05); #pragma warning restore CS0618 // Type or member is obsolete break; } case XMLPnPSchemaVersion.V201807: { formatter = XMLPnPSchemaFormatter.GetSpecificFormatter(XMLConstants.PROVISIONING_SCHEMA_NAMESPACE_2018_07); break; } case XMLPnPSchemaVersion.V201903: { formatter = XMLPnPSchemaFormatter.GetSpecificFormatter(XMLConstants.PROVISIONING_SCHEMA_NAMESPACE_2019_03); break; } case XMLPnPSchemaVersion.V201909: { formatter = XMLPnPSchemaFormatter.GetSpecificFormatter(XMLConstants.PROVISIONING_SCHEMA_NAMESPACE_2019_09); break; } case XMLPnPSchemaVersion.V202002: { formatter = XMLPnPSchemaFormatter.GetSpecificFormatter(XMLConstants.PROVISIONING_SCHEMA_NAMESPACE_2020_02); break; } } return(formatter); }
protected virtual void SaveToConnector(ProvisioningTemplate template, string uri, ITemplateFormatter formatter, ITemplateProviderExtension[] extensions) { if (String.IsNullOrEmpty(template.Id)) { template.Id = Path.GetFileNameWithoutExtension(uri); } template = PreProcessSaveTemplateExtensions(extensions, template); using (var stream = formatter.ToFormattedTemplate(template)) { using (var processedStream = PostProcessSaveTemplateExtensions(extensions, stream)) { this.Connector.SaveFileStream(uri, processedStream); } } if (this.Connector is ICommitableFileConnector) { ((ICommitableFileConnector)this.Connector).Commit(); } }
private void ExtractTemplate(XMLPnPSchemaVersion schema, string path, string packageName, ExtractConfiguration configuration) { SelectedWeb.EnsureProperty(w => w.Url); ProvisioningTemplateCreationInformation creationInformation = null; if (configuration != null) { creationInformation = configuration.ToCreationInformation(SelectedWeb); } else { creationInformation = new ProvisioningTemplateCreationInformation(SelectedWeb); } if (ParameterSpecified(nameof(Handlers))) { creationInformation.HandlersToProcess = Handlers; } if (ParameterSpecified(nameof(ExcludeHandlers))) { foreach (var handler in (Handlers[])Enum.GetValues(typeof(Handlers))) { if (!ExcludeHandlers.Has(handler) && handler != Handlers.All) { Handlers = Handlers | handler; } } creationInformation.HandlersToProcess = Handlers; } var extension = ""; if (packageName != null) { if (packageName.IndexOf(".", StringComparison.Ordinal) > -1) { extension = packageName.Substring(packageName.LastIndexOf(".", StringComparison.Ordinal)).ToLower(); } else { packageName += ".pnp"; extension = ".pnp"; } } var fileSystemConnector = new FileSystemConnector(path, ""); if (extension == ".pnp") { creationInformation.FileConnector = new OpenXMLConnector(packageName, fileSystemConnector); } else { creationInformation.FileConnector = fileSystemConnector; } #pragma warning disable 618 if (ParameterSpecified(nameof(PersistBrandingFiles)) || ParameterSpecified(nameof(PersistComposedLookFiles))) { creationInformation.PersistBrandingFiles = PersistBrandingFiles || PersistComposedLookFiles; } #pragma warning restore 618 creationInformation.PersistPublishingFiles = PersistPublishingFiles; creationInformation.IncludeNativePublishingFiles = IncludeNativePublishingFiles; if (ParameterSpecified(nameof(IncludeSiteGroups))) { creationInformation.IncludeSiteGroups = IncludeSiteGroups; } creationInformation.IncludeTermGroupsSecurity = IncludeTermGroupsSecurity; creationInformation.IncludeSearchConfiguration = IncludeSearchConfiguration; if (ParameterSpecified(nameof(IncludeHiddenLists))) { creationInformation.IncludeHiddenLists = IncludeHiddenLists; } #if !SP2013 && !SP2016 if (ParameterSpecified(nameof(IncludeAllClientSidePages))) { creationInformation.IncludeAllClientSidePages = IncludeAllClientSidePages; } #endif creationInformation.SkipVersionCheck = SkipVersionCheck; if (ParameterSpecified(nameof(ContentTypeGroups)) && ContentTypeGroups != null) { creationInformation.ContentTypeGroupsToInclude = ContentTypeGroups.ToList(); } #if !SP2013 creationInformation.PersistMultiLanguageResources = PersistMultiLanguageResources; if (extension == ".pnp") { // if file is of pnp format, persist all files creationInformation.PersistBrandingFiles = true; creationInformation.PersistPublishingFiles = true; creationInformation.PersistMultiLanguageResources = true; } if (!string.IsNullOrEmpty(ResourceFilePrefix)) { creationInformation.ResourceFilePrefix = ResourceFilePrefix; } else { if (Out != null) { FileInfo fileInfo = new FileInfo(Out); var prefix = fileInfo.Name; // strip extension, if there is any var indexOfLastDot = prefix.LastIndexOf(".", StringComparison.Ordinal); if (indexOfLastDot > -1) { prefix = prefix.Substring(0, indexOfLastDot); } creationInformation.ResourceFilePrefix = prefix; } } #endif if (ExtensibilityHandlers != null) { creationInformation.ExtensibilityHandlers = ExtensibilityHandlers.ToList(); } #pragma warning disable CS0618 // Type or member is obsolete if (NoBaseTemplate) { creationInformation.BaseTemplate = null; } else { creationInformation.BaseTemplate = SelectedWeb.GetBaseTemplate(); } #pragma warning restore CS0618 // Type or member is obsolete creationInformation.ProgressDelegate = (message, step, total) => { var percentage = Convert.ToInt32((100 / Convert.ToDouble(total)) * Convert.ToDouble(step)); WriteProgress(new ProgressRecord(0, $"Extracting Template from {SelectedWeb.Url}", message) { PercentComplete = percentage }); WriteProgress(new ProgressRecord(1, " ", " ") { RecordType = ProgressRecordType.Completed }); }; creationInformation.MessagesDelegate = (message, type) => { switch (type) { case ProvisioningMessageType.Warning: { WriteWarning(message); break; } case ProvisioningMessageType.Progress: { var activity = message; if (message.IndexOf("|") > -1) { var messageSplitted = message.Split('|'); if (messageSplitted.Length == 4) { var current = double.Parse(messageSplitted[2]); var total = double.Parse(messageSplitted[3]); subProgressRecord.RecordType = ProgressRecordType.Processing; subProgressRecord.Activity = messageSplitted[0]; subProgressRecord.StatusDescription = messageSplitted[1]; subProgressRecord.PercentComplete = Convert.ToInt32((100 / total) * current); WriteProgress(subProgressRecord); } else { subProgressRecord.Activity = "Processing"; subProgressRecord.RecordType = ProgressRecordType.Processing; subProgressRecord.StatusDescription = activity; subProgressRecord.PercentComplete = 0; WriteProgress(subProgressRecord); } } else { subProgressRecord.Activity = "Processing"; subProgressRecord.RecordType = ProgressRecordType.Processing; subProgressRecord.StatusDescription = activity; subProgressRecord.PercentComplete = 0; WriteProgress(subProgressRecord); } break; } case ProvisioningMessageType.Completed: { WriteProgress(new ProgressRecord(1, message, " ") { RecordType = ProgressRecordType.Completed }); break; } } }; if (IncludeAllTermGroups) { creationInformation.IncludeAllTermGroups = true; } else { if (IncludeSiteCollectionTermGroup) { creationInformation.IncludeSiteCollectionTermGroup = true; } } if (ParameterSpecified(nameof(ExcludeContentTypesFromSyndication))) { creationInformation.IncludeContentTypesFromSyndication = !ExcludeContentTypesFromSyndication.ToBool(); } if (ListsToExtract != null && ListsToExtract.Count > 0) { creationInformation.ListsToExtract.AddRange(ListsToExtract); } var template = SelectedWeb.GetProvisioningTemplate(creationInformation); // Set metadata for template, if any SetTemplateMetadata(template, TemplateDisplayName, TemplateImagePreviewUrl, TemplateProperties); if (!OutputInstance) { ITemplateFormatter formatter = null; switch (schema) { case XMLPnPSchemaVersion.LATEST: { formatter = XMLPnPSchemaFormatter.LatestFormatter; break; } case XMLPnPSchemaVersion.V201503: { #pragma warning disable CS0618 // Type or member is obsolete formatter = XMLPnPSchemaFormatter.GetSpecificFormatter(XMLConstants.PROVISIONING_SCHEMA_NAMESPACE_2015_03); #pragma warning restore CS0618 // Type or member is obsolete break; } case XMLPnPSchemaVersion.V201505: { #pragma warning disable CS0618 // Type or member is obsolete formatter = XMLPnPSchemaFormatter.GetSpecificFormatter(XMLConstants.PROVISIONING_SCHEMA_NAMESPACE_2015_05); #pragma warning restore CS0618 // Type or member is obsolete break; } case XMLPnPSchemaVersion.V201508: { #pragma warning disable CS0618 // Type or member is obsolete formatter = XMLPnPSchemaFormatter.GetSpecificFormatter(XMLConstants.PROVISIONING_SCHEMA_NAMESPACE_2015_08); #pragma warning restore CS0618 // Type or member is obsolete break; } case XMLPnPSchemaVersion.V201512: { #pragma warning disable CS0618 // Type or member is obsolete formatter = XMLPnPSchemaFormatter.GetSpecificFormatter(XMLConstants.PROVISIONING_SCHEMA_NAMESPACE_2015_12); #pragma warning restore CS0618 // Type or member is obsolete break; } case XMLPnPSchemaVersion.V201605: { #pragma warning disable CS0618 // Type or member is obsolete formatter = XMLPnPSchemaFormatter.GetSpecificFormatter(XMLConstants.PROVISIONING_SCHEMA_NAMESPACE_2016_05); #pragma warning restore CS0618 // Type or member is obsolete break; } case XMLPnPSchemaVersion.V201705: { #pragma warning disable CS0618 // Type or member is obsolete formatter = XMLPnPSchemaFormatter.GetSpecificFormatter(XMLConstants.PROVISIONING_SCHEMA_NAMESPACE_2017_05); #pragma warning restore CS0618 // Type or member is obsolete break; } case XMLPnPSchemaVersion.V201801: { #pragma warning disable CS0618 // Type or member is obsolete formatter = XMLPnPSchemaFormatter.GetSpecificFormatter(XMLConstants.PROVISIONING_SCHEMA_NAMESPACE_2018_01); #pragma warning restore CS0618 // Type or member is obsolete break; } case XMLPnPSchemaVersion.V201805: { #pragma warning disable CS0618 // Type or member is obsolete formatter = XMLPnPSchemaFormatter.GetSpecificFormatter(XMLConstants.PROVISIONING_SCHEMA_NAMESPACE_2018_05); #pragma warning restore CS0618 // Type or member is obsolete break; } case XMLPnPSchemaVersion.V201807: { formatter = XMLPnPSchemaFormatter.GetSpecificFormatter(XMLConstants.PROVISIONING_SCHEMA_NAMESPACE_2018_07); break; } case XMLPnPSchemaVersion.V201903: { formatter = XMLPnPSchemaFormatter.GetSpecificFormatter(XMLConstants.PROVISIONING_SCHEMA_NAMESPACE_2019_03); break; } case XMLPnPSchemaVersion.V201909: { formatter = XMLPnPSchemaFormatter.GetSpecificFormatter(XMLConstants.PROVISIONING_SCHEMA_NAMESPACE_2019_09); break; } case XMLPnPSchemaVersion.V202002: { formatter = XMLPnPSchemaFormatter.GetSpecificFormatter(XMLConstants.PROVISIONING_SCHEMA_NAMESPACE_2020_02); break; } } if (extension == ".pnp") { #if !NETSTANDARD2_1 IsolatedStorage.InitializeIsolatedStorage(); #endif XMLTemplateProvider provider = new XMLOpenXMLTemplateProvider( creationInformation.FileConnector as OpenXMLConnector); var templateFileName = packageName.Substring(0, packageName.LastIndexOf(".", StringComparison.Ordinal)) + ".xml"; provider.SaveAs(template, templateFileName, formatter, TemplateProviderExtensions); } else { if (Out != null) { XMLTemplateProvider provider = new XMLFileSystemTemplateProvider(path, ""); provider.SaveAs(template, Path.Combine(path, packageName), formatter, TemplateProviderExtensions); } else { var outputStream = formatter.ToFormattedTemplate(template); var reader = new StreamReader(outputStream); WriteObject(reader.ReadToEnd()); } } } else { WriteObject(template); } }
public override void Save(ProvisioningTemplate template, ITemplateFormatter formatter) { this.Save(template, formatter, null); }
private string GetProvisioningTemplateXML(XMLPnPSchemaVersion schema, string path) { SelectedWeb.EnsureProperty(w => w.Url); var creationInformation = new ProvisioningTemplateCreationInformation(SelectedWeb); if (this.MyInvocation.BoundParameters.ContainsKey("Handlers")) { creationInformation.HandlersToProcess = Handlers; } creationInformation.PersistBrandingFiles = PersistBrandingFiles || PersistComposedLookFiles; creationInformation.IncludeSiteGroups = IncludeSiteGroups; creationInformation.FileConnector = new FileSystemConnector(path, ""); #pragma warning disable CS0618 // Type or member is obsolete if (NoBaseTemplate) { creationInformation.BaseTemplate = null; } else { creationInformation.BaseTemplate = this.SelectedWeb.GetBaseTemplate(); } #pragma warning restore CS0618 // Type or member is obsolete creationInformation.ProgressDelegate = (message, step, total) => { WriteProgress(new ProgressRecord(0, string.Format("Extracting Template from {0}", SelectedWeb.Url), message) { PercentComplete = (100 / total) * step }); }; creationInformation.MessagesDelegate = (message, type) => { if (type == ProvisioningMessageType.Warning) { WriteWarning(message); } }; if (IncludeAllTermGroups) { creationInformation.IncludeAllTermGroups = true; } else { if (IncludeSiteCollectionTermGroup) { creationInformation.IncludeSiteCollectionTermGroup = true; } } var template = SelectedWeb.GetProvisioningTemplate(creationInformation); ITemplateFormatter formatter = null; switch (schema) { case XMLPnPSchemaVersion.LATEST: { formatter = XMLPnPSchemaFormatter.LatestFormatter; break; } case XMLPnPSchemaVersion.V201503: { #pragma warning disable CS0618 // Type or member is obsolete formatter = XMLPnPSchemaFormatter.GetSpecificFormatter(XMLConstants.PROVISIONING_SCHEMA_NAMESPACE_2015_03); #pragma warning restore CS0618 // Type or member is obsolete break; } case XMLPnPSchemaVersion.V201505: { formatter = XMLPnPSchemaFormatter.GetSpecificFormatter(XMLConstants.PROVISIONING_SCHEMA_NAMESPACE_2015_05); break; } case XMLPnPSchemaVersion.V201508: { formatter = XMLPnPSchemaFormatter.GetSpecificFormatter(XMLConstants.PROVISIONING_SCHEMA_NAMESPACE_2015_08); break; } case XMLPnPSchemaVersion.V201512: { formatter = XMLPnPSchemaFormatter.GetSpecificFormatter(XMLConstants.PROVISIONING_SCHEMA_NAMESPACE_2015_12); break; } } var _outputStream = formatter.ToFormattedTemplate(template); StreamReader reader = new StreamReader(_outputStream); return(reader.ReadToEnd()); }
/// <summary> /// Saves ProvisioningHierarchy /// </summary> /// <param name="hierarchy">Provisioning Hierarchy</param> /// <param name="uri">The target uri</param> /// <param name="formatter">Provisioning Template Formatter</param> public abstract void SaveAs(ProvisioningHierarchy hierarchy, string uri, ITemplateFormatter formatter = null);
protected virtual NameMapper GetNameMapper(string packageName, ITemplateFormatter packageNamingConvention) { return(new NameMapper(packageName, packageNamingConvention)); }
protected override void ProcessRecord() { var templateObject = Template.GetTemplate(SessionState.Path.CurrentFileSystemLocation.Path, (e) => { WriteError(new ErrorRecord(e, "TEMPLATENOTVALID", ErrorCategory.SyntaxError, null)); }); // Determine the output file name and path string outFileName = Path.GetFileName(Out); if (!Path.IsPathRooted(Out)) { Out = Path.Combine(SessionState.Path.CurrentFileSystemLocation.Path, Out); } bool proceed = false; if (System.IO.File.Exists(Out)) { if (Force || ShouldContinue(string.Format(Properties.Resources.File0ExistsOverwrite, Out), Properties.Resources.Confirm)) { proceed = true; } } else { proceed = true; } string outPath = new FileInfo(Out).DirectoryName; // Determine if it is an .XML or a .PNP file var extension = ""; if (proceed && outFileName != null) { if (outFileName.IndexOf(".", StringComparison.Ordinal) > -1) { extension = outFileName.Substring(outFileName.LastIndexOf(".", StringComparison.Ordinal)).ToLower(); } else { extension = ".pnp"; } } var fileSystemConnector = new FileSystemConnector(outPath, ""); ITemplateFormatter formatter = ProvisioningHelper.GetFormatter(Schema); if (extension == ".pnp") { #if !NETSTANDARD2_1 IsolatedStorage.InitializeIsolatedStorage(); #endif XMLTemplateProvider provider = new XMLOpenXMLTemplateProvider( Out, fileSystemConnector); var templateFileName = outFileName.Substring(0, outFileName.LastIndexOf(".", StringComparison.Ordinal)) + ".xml"; provider.SaveAs(templateObject, templateFileName, formatter, TemplateProviderExtensions); ProcessFiles(templateObject, Out, fileSystemConnector, provider.Connector); } else { XMLTemplateProvider provider = new XMLFileSystemTemplateProvider(outPath, ""); provider.SaveAs(templateObject, Out, formatter, TemplateProviderExtensions); } }
protected override NameMapper GetNameMapper(string packageName, ITemplateFormatter packageNamingConvention) { var nameMapper = new UmlRoboticsNameMapper(packageName, packageNamingConvention); return(nameMapper); }
protected override void BeginProcessing() { if (!System.IO.Path.IsPathRooted(Path)) { Path = System.IO.Path.Combine(SessionState.Path.CurrentFileSystemLocation.Path, Path); } if (ParameterSpecified(nameof(Out))) { if (!System.IO.Path.IsPathRooted(Out)) { Out = System.IO.Path.Combine(SessionState.Path.CurrentFileSystemLocation.Path, Out); } } FileInfo fileInfo = new FileInfo(Path); XMLTemplateProvider provider = new XMLFileSystemTemplateProvider(fileInfo.DirectoryName, ""); var provisioningTemplate = provider.GetTemplate(fileInfo.Name); if (provisioningTemplate != null) { ITemplateFormatter formatter = null; switch (ToSchema) { case XMLPnPSchemaVersion.LATEST: { formatter = XMLPnPSchemaFormatter.LatestFormatter; break; } case XMLPnPSchemaVersion.V201903: { formatter = XMLPnPSchemaFormatter.GetSpecificFormatter(XMLConstants.PROVISIONING_SCHEMA_NAMESPACE_2019_03); break; } case XMLPnPSchemaVersion.V201909: { formatter = XMLPnPSchemaFormatter.GetSpecificFormatter(XMLConstants.PROVISIONING_SCHEMA_NAMESPACE_2019_09); break; } case XMLPnPSchemaVersion.V202002: { formatter = XMLPnPSchemaFormatter.GetSpecificFormatter(XMLConstants.PROVISIONING_SCHEMA_NAMESPACE_2020_02); break; } case XMLPnPSchemaVersion.V202103: { formatter = XMLPnPSchemaFormatter.GetSpecificFormatter(XMLConstants.PROVISIONING_SCHEMA_NAMESPACE_2021_03); break; } } if (!string.IsNullOrEmpty(Out)) { if (File.Exists(Out)) { if (Force || ShouldContinue(string.Format(Resources.File0ExistsOverwrite, Out), Resources.Confirm)) { File.WriteAllText(Out, provisioningTemplate.ToXML(formatter), Encoding); } } else { File.WriteAllText(Out, provisioningTemplate.ToXML(formatter), Encoding); } } else { WriteObject(provisioningTemplate.ToXML(formatter)); } } }
public override ProvisioningTemplate GetTemplate(string uri, string identifier, ITemplateFormatter formatter) { if (String.IsNullOrEmpty(uri)) { throw new ArgumentException("uri"); } // Get the XML document from a File Stream Stream stream = this.Connector.GetFileStream(uri); if (stream == null) { throw new ApplicationException(string.Format(CoreResources.Provisioning_Formatter_Invalid_Template_URI, uri)); } //Resolve xml includes if any stream = ResolveXIncludes(stream); // And convert it into a ProvisioningTemplate ProvisioningTemplate provisioningTemplate = formatter.ToProvisioningTemplate(stream, identifier); // Store the identifier of this template, is needed for latter save operation this.Uri = uri; return(provisioningTemplate); }
private void SaveToConnector(ProvisioningTemplate template, string uri, ITemplateFormatter formatter) { if (String.IsNullOrEmpty(template.Id)) { template.Id = Path.GetFileNameWithoutExtension(uri); } using (var stream = formatter.ToFormattedTemplate(template)) { this.Connector.SaveFileStream(uri, stream); } if (this.Connector is ICommitableFileConnector) { ((ICommitableFileConnector)this.Connector).Commit(); } }
/// <summary> /// Gets list of ProvisioningTemplates /// </summary> /// <param name="formatter">Provisioning Template formatter</param> /// <returns>Returns collection of ProvisioningTemplate</returns> public abstract List <ProvisioningTemplate> GetTemplates(ITemplateFormatter formatter);
public override void SaveAs(ProvisioningTemplate template, string uri, ITemplateFormatter formatter) { this.SaveAs(template, uri, formatter, null); }
/// <summary> /// Gets ProvisioningTemplate /// </summary> /// <param name="uri">The source uri</param> /// <param name="formatter">Provisioning Template formatter</param> /// <returns>Returns a ProvisioningTemplate</returns> public abstract ProvisioningTemplate GetTemplate(string uri, ITemplateFormatter formatter);
public override ProvisioningTemplate GetTemplate(string uri, string identifier, ITemplateFormatter formatter) { return (this.GetTemplate(uri, identifier, formatter, null)); }
/// <summary> /// Gets ProvisioningTemplate /// </summary> /// <param name="uri">The source uri</param> /// <param name="formatter">Provisioning Template formatter</param> /// <returns>Returns a ProvisioningTemplate</returns> public abstract ProvisioningTemplate GetTemplate(Stream stream, ITemplateFormatter formatter);
public override void Save(ProvisioningTemplate template, ITemplateFormatter formatter, ITemplateProviderExtension[] extensions = null) { this.SaveAs(template, this.Uri, formatter, extensions); }
/// <summary> /// Gets ProvisioningTemplate /// </summary> /// <param name="uri">The source uri</param> /// <param name="identifier">ProvisioningTemplate identifier</param> /// <param name="formatter">Provisioning Template formatter</param> /// <returns>Returns a ProvisioningTemplate</returns> public abstract ProvisioningTemplate GetTemplate(Stream stream, string identifier, ITemplateFormatter formatter);
public override void SaveAs(ProvisioningTemplate template, string uri, ITemplateFormatter formatter) { this.SaveAs(template, uri, formatter, null); }
public abstract void SaveAs(ProvisioningTemplate template, string uri, ITemplateFormatter formatter);
public override ProvisioningTemplate GetTemplate(string uri, string identifier, ITemplateFormatter formatter, ITemplateProviderExtension[] extensions) { if (String.IsNullOrEmpty(uri)) { throw new ArgumentException("uri"); } if (formatter == null) { formatter = new JsonPnPFormatter(); formatter.Initialize(this); } // Get the XML document from a File Stream Stream stream = this.Connector.GetFileStream(uri); if (stream == null) { throw new ApplicationException(string.Format(CoreResources.Provisioning_Formatter_Invalid_Template_URI, uri)); } // Handle any pre-processing extension stream = PreProcessGetTemplateExtensions(extensions, stream); // And convert it into a ProvisioningTemplate ProvisioningTemplate provisioningTemplate = formatter.ToProvisioningTemplate(stream, identifier); // Handle any post-processing extension provisioningTemplate = PostProcessGetTemplateExtensions(extensions, provisioningTemplate); // Store the identifier of this template, is needed for latter save operation this.Uri = uri; return(provisioningTemplate); }
public abstract ProvisioningTemplate GetTemplate(string uri, string identifier, ITemplateFormatter formatter);
private void ExtractTemplate(XMLPnPSchemaVersion schema, string path, string packageName) { SelectedWeb.EnsureProperty(w => w.Url); var creationInformation = new ProvisioningTemplateCreationInformation(SelectedWeb); if (MyInvocation.BoundParameters.ContainsKey("Handlers")) { creationInformation.HandlersToProcess = Handlers; } if (MyInvocation.BoundParameters.ContainsKey("ExcludeHandlers")) { foreach (var handler in (Handlers[])Enum.GetValues(typeof(Handlers))) { if (!ExcludeHandlers.Has(handler) && handler != Handlers.All) { Handlers = Handlers | handler; } } creationInformation.HandlersToProcess = Handlers; } var extension = ""; if (packageName != null) { if (packageName.IndexOf(".", StringComparison.Ordinal) > -1) { extension = packageName.Substring(packageName.LastIndexOf(".", StringComparison.Ordinal)).ToLower(); } else { packageName += ".pnp"; extension = ".pnp"; } } var fileSystemConnector = new FileSystemConnector(path, ""); if (extension == ".pnp") { creationInformation.FileConnector = new OpenXMLConnector(packageName, fileSystemConnector); } else { creationInformation.FileConnector = fileSystemConnector; } #pragma warning disable 618 creationInformation.PersistBrandingFiles = PersistBrandingFiles || PersistComposedLookFiles; #pragma warning restore 618 creationInformation.PersistPublishingFiles = PersistPublishingFiles; creationInformation.IncludeNativePublishingFiles = IncludeNativePublishingFiles; creationInformation.IncludeSiteGroups = IncludeSiteGroups; creationInformation.IncludeTermGroupsSecurity = IncludeTermGroupsSecurity; #if !SP2013 creationInformation.PersistMultiLanguageResources = PersistMultiLanguageResources; if (!string.IsNullOrEmpty(ResourceFilePrefix)) { creationInformation.ResourceFilePrefix = ResourceFilePrefix; } else { if (Out != null) { FileInfo fileInfo = new FileInfo(Out); var prefix = fileInfo.Name.Substring(0, fileInfo.Name.LastIndexOf(".", StringComparison.Ordinal)); creationInformation.ResourceFilePrefix = prefix; } } #endif if (ExtensibilityHandlers != null) { creationInformation.ExtensibilityHandlers = ExtensibilityHandlers.ToList(); } #pragma warning disable CS0618 // Type or member is obsolete if (NoBaseTemplate) { creationInformation.BaseTemplate = null; } else { creationInformation.BaseTemplate = SelectedWeb.GetBaseTemplate(); } #pragma warning restore CS0618 // Type or member is obsolete creationInformation.ProgressDelegate = (message, step, total) => { WriteProgress(new ProgressRecord(0, $"Extracting Template from {SelectedWeb.Url}", message) { PercentComplete = (100 / total) * step }); }; creationInformation.MessagesDelegate = (message, type) => { if (type == ProvisioningMessageType.Warning) { WriteWarning(message); } }; if (IncludeAllTermGroups) { creationInformation.IncludeAllTermGroups = true; } else { if (IncludeSiteCollectionTermGroup) { creationInformation.IncludeSiteCollectionTermGroup = true; } } var template = SelectedWeb.GetProvisioningTemplate(creationInformation); // Set metadata for template, if any SetTemplateMetadata(template, TemplateDisplayName, TemplateImagePreviewUrl, TemplateProperties); if (!OutputInstance) { ITemplateFormatter formatter = null; switch (schema) { case XMLPnPSchemaVersion.LATEST: { formatter = XMLPnPSchemaFormatter.LatestFormatter; break; } case XMLPnPSchemaVersion.V201503: { #pragma warning disable CS0618 // Type or member is obsolete formatter = XMLPnPSchemaFormatter.GetSpecificFormatter(XMLConstants.PROVISIONING_SCHEMA_NAMESPACE_2015_03); #pragma warning restore CS0618 // Type or member is obsolete break; } case XMLPnPSchemaVersion.V201505: { #pragma warning disable CS0618 // Type or member is obsolete formatter = XMLPnPSchemaFormatter.GetSpecificFormatter(XMLConstants.PROVISIONING_SCHEMA_NAMESPACE_2015_05); #pragma warning restore CS0618 // Type or member is obsolete break; } case XMLPnPSchemaVersion.V201508: { #pragma warning disable CS0618 // Type or member is obsolete formatter = XMLPnPSchemaFormatter.GetSpecificFormatter(XMLConstants.PROVISIONING_SCHEMA_NAMESPACE_2015_08); #pragma warning restore CS0618 // Type or member is obsolete break; } case XMLPnPSchemaVersion.V201512: { formatter = XMLPnPSchemaFormatter.GetSpecificFormatter(XMLConstants.PROVISIONING_SCHEMA_NAMESPACE_2015_12); break; } } if (extension == ".pnp") { XMLTemplateProvider provider = new XMLOpenXMLTemplateProvider( creationInformation.FileConnector as OpenXMLConnector); var templateFileName = packageName.Substring(0, packageName.LastIndexOf(".", StringComparison.Ordinal)) + ".xml"; provider.SaveAs(template, templateFileName, formatter, TemplateProviderExtensions); } else { if (Out != null) { XMLTemplateProvider provider = new XMLFileSystemTemplateProvider(path, ""); provider.SaveAs(template, Path.Combine(path, packageName), formatter, TemplateProviderExtensions); } else { var outputStream = formatter.ToFormattedTemplate(template); var reader = new StreamReader(outputStream); WriteObject(reader.ReadToEnd()); } } } else { WriteObject(template); } }
public override void Save(ProvisioningTemplate template, ITemplateFormatter formatter) { if (template == null) { throw new ArgumentNullException("template"); } SaveToConnector(template, this.Uri, formatter); }
/// <summary> /// Gets ProvisioningTemplate /// </summary> /// <param name="uri">The source uri</param> /// <param name="identifier">ProvisioningTemplate identifier</param> /// <param name="formatter">Provisioning Template formatter</param> /// <param name="extensions">Collection of provisioning template extensions</param> /// <returns>Returns a ProvisioningTemplate</returns> public abstract ProvisioningTemplate GetTemplate(Stream stream, string identifier, ITemplateFormatter formatter, ITemplateProviderExtension[] extensions);
private void ExtractTemplate(XMLPnPSchemaVersion schema, string path, string packageName) { SelectedWeb.EnsureProperty(w => w.Url); var creationInformation = new ProvisioningTemplateCreationInformation(SelectedWeb); creationInformation.HandlersToProcess = Handlers.Lists; var extension = ""; if (packageName != null) { if (packageName.IndexOf(".", StringComparison.Ordinal) > -1) { extension = packageName.Substring(packageName.LastIndexOf(".", StringComparison.Ordinal)).ToLower(); } else { packageName += ".pnp"; extension = ".pnp"; } } var fileSystemConnector = new FileSystemConnector(path, ""); if (extension == ".pnp") { creationInformation.FileConnector = new OpenXMLConnector(packageName, fileSystemConnector); } else { creationInformation.FileConnector = fileSystemConnector; } creationInformation.ProgressDelegate = (message, step, total) => { var percentage = Convert.ToInt32((100 / Convert.ToDouble(total)) * Convert.ToDouble(step)); WriteProgress(new ProgressRecord(0, $"Extracting Template from {SelectedWeb.Url}", message) { PercentComplete = percentage }); }; creationInformation.MessagesDelegate = (message, type) => { switch (type) { case ProvisioningMessageType.Warning: { WriteWarning(message); break; } case ProvisioningMessageType.Progress: { var activity = message; if (message.IndexOf("|") > -1) { var messageSplitted = message.Split('|'); if (messageSplitted.Length == 4) { var current = double.Parse(messageSplitted[2]); var total = double.Parse(messageSplitted[3]); subProgressRecord.RecordType = ProgressRecordType.Processing; subProgressRecord.Activity = messageSplitted[0]; subProgressRecord.StatusDescription = messageSplitted[1]; subProgressRecord.PercentComplete = Convert.ToInt32((100 / total) * current); WriteProgress(subProgressRecord); } else { subProgressRecord.Activity = "Processing"; subProgressRecord.RecordType = ProgressRecordType.Processing; subProgressRecord.StatusDescription = activity; subProgressRecord.PercentComplete = 0; WriteProgress(subProgressRecord); } } else { subProgressRecord.Activity = "Processing"; subProgressRecord.RecordType = ProgressRecordType.Processing; subProgressRecord.StatusDescription = activity; subProgressRecord.PercentComplete = 0; WriteProgress(subProgressRecord); } break; } case ProvisioningMessageType.Completed: { WriteProgress(new ProgressRecord(1, message, " ") { RecordType = ProgressRecordType.Completed }); break; } } }; if (List != null && List.Count > 0) { creationInformation.ListsToExtract.AddRange(List); } var template = SelectedWeb.GetProvisioningTemplate(creationInformation); if (!OutputInstance) { ITemplateFormatter formatter = null; switch (schema) { case XMLPnPSchemaVersion.LATEST: { formatter = XMLPnPSchemaFormatter.LatestFormatter; break; } case XMLPnPSchemaVersion.V201503: { #pragma warning disable CS0618 // Type or member is obsolete formatter = XMLPnPSchemaFormatter.GetSpecificFormatter(XMLConstants.PROVISIONING_SCHEMA_NAMESPACE_2015_03); #pragma warning restore CS0618 // Type or member is obsolete break; } case XMLPnPSchemaVersion.V201505: { #pragma warning disable CS0618 // Type or member is obsolete formatter = XMLPnPSchemaFormatter.GetSpecificFormatter(XMLConstants.PROVISIONING_SCHEMA_NAMESPACE_2015_05); #pragma warning restore CS0618 // Type or member is obsolete break; } case XMLPnPSchemaVersion.V201508: { #pragma warning disable CS0618 // Type or member is obsolete formatter = XMLPnPSchemaFormatter.GetSpecificFormatter(XMLConstants.PROVISIONING_SCHEMA_NAMESPACE_2015_08); #pragma warning restore CS0618 // Type or member is obsolete break; } case XMLPnPSchemaVersion.V201512: { #pragma warning disable CS0618 // Type or member is obsolete formatter = XMLPnPSchemaFormatter.GetSpecificFormatter(XMLConstants.PROVISIONING_SCHEMA_NAMESPACE_2015_12); #pragma warning restore CS0618 // Type or member is obsolete break; } case XMLPnPSchemaVersion.V201605: { #pragma warning disable CS0618 // Type or member is obsolete formatter = XMLPnPSchemaFormatter.GetSpecificFormatter(XMLConstants.PROVISIONING_SCHEMA_NAMESPACE_2016_05); #pragma warning restore CS0618 // Type or member is obsolete break; } case XMLPnPSchemaVersion.V201705: { formatter = XMLPnPSchemaFormatter.GetSpecificFormatter(XMLConstants.PROVISIONING_SCHEMA_NAMESPACE_2017_05); break; } case XMLPnPSchemaVersion.V201801: { formatter = XMLPnPSchemaFormatter.GetSpecificFormatter(XMLConstants.PROVISIONING_SCHEMA_NAMESPACE_2018_01); break; } case XMLPnPSchemaVersion.V201805: { formatter = XMLPnPSchemaFormatter.GetSpecificFormatter(XMLConstants.PROVISIONING_SCHEMA_NAMESPACE_2018_05); break; } case XMLPnPSchemaVersion.V201807: { formatter = XMLPnPSchemaFormatter.GetSpecificFormatter(XMLConstants.PROVISIONING_SCHEMA_NAMESPACE_2018_07); break; } case XMLPnPSchemaVersion.V201903: { formatter = XMLPnPSchemaFormatter.GetSpecificFormatter(XMLConstants.PROVISIONING_SCHEMA_NAMESPACE_2019_03); break; } case XMLPnPSchemaVersion.V201909: { formatter = XMLPnPSchemaFormatter.GetSpecificFormatter(XMLConstants.PROVISIONING_SCHEMA_NAMESPACE_2019_09); break; } } if (extension == ".pnp") { IsolatedStorage.InitializeIsolatedStorage(); XMLTemplateProvider provider = new XMLOpenXMLTemplateProvider( creationInformation.FileConnector as OpenXMLConnector); var templateFileName = packageName.Substring(0, packageName.LastIndexOf(".", StringComparison.Ordinal)) + ".xml"; provider.SaveAs(template, templateFileName, formatter, null); } else { if (Out != null) { XMLTemplateProvider provider = new XMLFileSystemTemplateProvider(path, ""); provider.SaveAs(template, Path.Combine(path, packageName), formatter, null); } else { var outputStream = formatter.ToFormattedTemplate(template); var reader = new StreamReader(outputStream); WriteObject(reader.ReadToEnd()); } } } else { WriteObject(template); } }
public abstract List<ProvisioningTemplate> GetTemplates(ITemplateFormatter formatter);
/// <summary> /// Saves ProvisioningTemplate /// </summary> /// <param name="template">Provisioning Template</param> /// <param name="formatter">Provisioning Template Formatter</param> public abstract void Save(ProvisioningTemplate template, ITemplateFormatter formatter);
public abstract void Save(ProvisioningTemplate template, ITemplateFormatter formatter);
/// <summary> /// Saves ProvisioningTemplate /// </summary> /// <param name="template">Provisioning Template</param> /// <param name="uri">The target uri</param> /// <param name="formatter">Provisioning Template Formatter</param> public abstract void SaveAs(ProvisioningTemplate template, string uri, ITemplateFormatter formatter);
public override void SaveAs(ProvisioningTemplate template, string uri, ITemplateFormatter formatter) { if (template == null) { throw new ArgumentNullException("template"); } if (String.IsNullOrEmpty(uri)) { throw new ArgumentException("uri"); } SaveToConnector(template, uri, formatter); }
/// <summary> /// Saves ProvisioningTemplate /// </summary> /// <param name="template">Provisioning Template</param> /// <param name="uri">The target uri</param> /// <param name="formatter">Provisioning Template Formatter</param> /// <param name="extensions">Collection of provisioning template extensions</param> public abstract void SaveAs(ProvisioningTemplate template, string uri, ITemplateFormatter formatter, ITemplateProviderExtension[] extensions);
protected virtual void SaveToConnector(ProvisioningTemplate template, string uri, ITemplateFormatter formatter, ITemplateProviderExtension[] extensions) { if (String.IsNullOrEmpty(template.Id)) { template.Id = Path.GetFileNameWithoutExtension(uri); } template = PreProcessSaveTemplateExtensions(extensions, template); using (var stream = formatter.ToFormattedTemplate(template)) { using (var processedStream = PostProcessSaveTemplateExtensions(extensions, stream)) { this.Connector.SaveFileStream(uri, processedStream); } } if (this.Connector is ICommitableFileConnector) { ((ICommitableFileConnector)this.Connector).Commit(); } }
protected override void ProcessRecord() { // Determine the output file name and path string outFileName = Path.GetFileName(Out); if (!Path.IsPathRooted(Out)) { Out = Path.Combine(SessionState.Path.CurrentFileSystemLocation.Path, Out); } bool proceed = false; if (System.IO.File.Exists(Out)) { if (Force || ShouldContinue(string.Format(Properties.Resources.File0ExistsOverwrite, Out), Properties.Resources.Confirm)) { System.IO.File.Delete(Out); proceed = true; } } else { proceed = true; } string outPath = new FileInfo(Out).DirectoryName; // Determine if it is an .XML or a .PNP file var extension = ""; if (proceed && outFileName != null) { if (outFileName.IndexOf(".", StringComparison.Ordinal) > -1) { extension = outFileName.Substring(outFileName.LastIndexOf(".", StringComparison.Ordinal)).ToLower(); } else { extension = ".pnp"; } } var fileSystemConnector = new FileSystemConnector(outPath, ""); ITemplateFormatter formatter = XMLPnPSchemaFormatter.LatestFormatter; if (extension == ".pnp") { IsolatedStorage.InitializeIsolatedStorage(); var templateFileName = outFileName.Substring(0, outFileName.LastIndexOf(".", StringComparison.Ordinal)) + ".xml"; XMLTemplateProvider provider = new XMLOpenXMLTemplateProvider( Out, fileSystemConnector, templateFileName: templateFileName); WriteObject("Processing template"); provider.SaveAs(Template, templateFileName); ProcessFiles(Template, Out, fileSystemConnector, provider.Connector, (message) => { WriteObject(message); }); } else { XMLTemplateProvider provider = new XMLFileSystemTemplateProvider(outPath, ""); provider.SaveAs(Template, Out); } }
public override void Save(ProvisioningTemplate template, ITemplateFormatter formatter, ITemplateProviderExtension[] extensions = null) { this.SaveAs(template, this.Uri, formatter, extensions); }
public override ProvisioningTemplate GetTemplate(Stream stream, ITemplateFormatter formatter) { return(this.GetTemplate(stream, null, formatter)); }
public override void SaveAs(ProvisioningTemplate template, string uri, ITemplateFormatter formatter, ITemplateProviderExtension[] extensions) { if (template == null) { throw new ArgumentNullException("template"); } if (String.IsNullOrEmpty(uri)) { throw new ArgumentException("uri"); } if (formatter == null) { formatter = new XMLPnPSchemaFormatter(); } SaveToConnector(template, uri, formatter, extensions); }
public override ProvisioningTemplate GetTemplate(Stream stream, string identifier, ITemplateFormatter formatter, ITemplateProviderExtension[] extensions) { if (stream == null) { throw new ArgumentException(nameof(stream)); } if (formatter == null) { formatter = new JsonPnPFormatter(); formatter.Initialize(this); } // Handle any pre-processing extension stream = PreProcessGetTemplateExtensions(extensions, stream); // And convert it into a ProvisioningTemplate ProvisioningTemplate provisioningTemplate = formatter.ToProvisioningTemplate(stream, identifier); // Handle any post-processing extension provisioningTemplate = PostProcessGetTemplateExtensions(extensions, provisioningTemplate); // Store the identifier of this template, is needed for latter save operation this.Uri = null; return(provisioningTemplate); }
public override ProvisioningTemplate GetTemplate(string uri, ITemplateFormatter formatter) { return (this.GetTemplate(uri, null, formatter)); }
public override void Save(ProvisioningTemplate template, ITemplateFormatter formatter) { this.Save(template, formatter, null); }
public override ProvisioningTemplate GetTemplate(string uri, string identifier, ITemplateFormatter formatter, ITemplateProviderExtension[] extensions = null) { if (String.IsNullOrEmpty(uri)) { throw new ArgumentException("uri"); } if (formatter == null) { formatter = new XMLPnPSchemaFormatter(); formatter.Initialize(this); } // Get the XML document from a File Stream Stream stream = this.Connector.GetFileStream(uri); if (stream == null) { throw new ApplicationException(string.Format(CoreResources.Provisioning_Formatter_Invalid_Template_URI, uri)); } // Handle any pre-processing extension stream = PreProcessGetTemplateExtensions(extensions, stream); //Resolve xml includes if any stream = ResolveXIncludes(stream); // And convert it into a ProvisioningTemplate ProvisioningTemplate provisioningTemplate = formatter.ToProvisioningTemplate(stream, identifier); // Handle any post-processing extension provisioningTemplate = PostProcessGetTemplateExtensions(extensions, provisioningTemplate); // Store the identifier of this template, is needed for latter save operation this.Uri = uri; return (provisioningTemplate); }
public abstract void SaveAs(ProvisioningTemplate template, string uri, ITemplateFormatter formatter, ITemplateProviderExtension[] extensions);