/// <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);
        }
Exemplo n.º 2
0
        /// <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));
        }
Exemplo n.º 3
0
 /// <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));
 }