/// <summary> /// Adds default implementations provided by the transformation framework /// </summary> /// <param name="builder">The services builder</param> /// <returns>A PnPTransformationBuilder instance</returns> public static IPnPTransformationBuilder AddDefaults(this IPnPTransformationBuilder builder) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } builder.Services.TryAddTransient <IPageTransformator, DefaultPageTransformator>(); builder.Services.TryAddTransient <IPageGenerator, DefaultPageGenerator>(); builder.Services.TryAddTransient <ITransformationStateManager, InMemoryTransformationStateManager>(); builder.Services.TryAddTransient <ITransformationExecutor, InProcessTransformationExecutor>(); builder.Services.TryAddTransient <IAssetPersistenceProvider, FileSystemAssetPersistenceProvider>(); builder.Services.TryAddTransient <TokenParser, TokenParser>(); // Register the Telemetry Service builder.Services.AddTransient <TelemetryService, TelemetryService>(); // Register all the token definitions as services var tokenDefinitionInterface = typeof(ITokenDefinition); var tokenDefinitions = typeof(PnPTransformationServiceCollectionExtensions).Assembly.GetTypes() .Where(t => tokenDefinitionInterface.IsAssignableFrom(t) && !t.IsInterface); foreach (var tokenDefinition in tokenDefinitions) { builder.Services.AddTransient(typeof(ITokenDefinition), tokenDefinition); } return(builder); }
/// <summary> /// Adds default implementations provided by the transformation framework /// </summary> /// <param name="builder"></param> /// <param name="options"></param> /// <returns></returns> public static IPnPSharePointTransformationBuilder WithSharePoint(this IPnPTransformationBuilder builder, Action <SharePointTransformationOptions> options) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } if (options != null) { builder.Services.Configure(options); } builder.WithMappingProvider <SharePointMappingProvider>() .WithTransformationDistiller <SharePointTransformationDistiller>() .WithTargetPageUriResolver <SharePointTargetPageUriResolver>(); builder.Services.TryAddTransient <IMetadataMappingProvider, SharePointMetadataMappingProvider>(); builder.Services.TryAddTransient <IHtmlMappingProvider, SharePointHtmlMappingProvider>(); builder.Services.TryAddTransient <IPageLayoutMappingProvider, SharePointPageLayoutMappingProvider>(); builder.Services.TryAddTransient <ITaxonomyMappingProvider, SharePointTaxonomyMappingProvider>(); builder.Services.TryAddTransient <IUserMappingProvider, SharePointUserMappingProvider>(); builder.Services.TryAddTransient <IUrlMappingProvider, SharePointUrlMappingProvider>(); builder.Services.TryAddTransient <IWebPartMappingProvider, SharePointWebPartMappingProvider>(); // Add the custom PageLayoutAnalyser type builder.Services.TryAddTransient <PageLayoutAnalyser, PageLayoutAnalyser>(); // Add the SharePoint functions services builder.Services.TryAddTransient <FunctionProcessor, FunctionProcessor>(); builder.Services.TryAddTransient <SharePointFunctionsService, SharePointFunctionsService>(); builder.Services.TryAddTransient <PublishingFunctionProcessor, PublishingFunctionProcessor>(); builder.Services.TryAddTransient <SharePointPublishingFunctionsService, SharePointPublishingFunctionsService>(); // Add the HTML Transformator service builder.Services.TryAddTransient <HtmlTransformator, HtmlTransformator>(); // Add the Wiki HTML Transformator service builder.Services.TryAddTransient <WikiHtmlTransformator, WikiHtmlTransformator>(); // Add the Publishing Page Transformator service builder.Services.TryAddTransient <PublishingLayoutTransformator, PublishingLayoutTransformator>(); return(new PnPSharePointTransformationBuilder(builder.Services)); }
/// <summary> /// Adds default implementations provided by the transformation framework /// </summary> /// <param name="builder"></param> /// <returns></returns> public static IPnPSharePointTransformationBuilder WithSharePoint(this IPnPTransformationBuilder builder) { return(WithSharePoint(builder, null)); }