/// <summary>
 /// Constructor with DI support
 /// </summary>
 /// <param name="logger">The logger interface</param>
 /// <param name="mappingProvider">The mapping provider interface</param>
 /// <param name="targetPageUriResolver">The target page uri resolver</param>
 /// <param name="pagePreTransformations">The list of post transformations to call</param>
 /// <param name="pagePostTransformations">The list of pre transformations to call</param>
 /// <param name="pageTransformationOptions">The options</param>
 /// <param name="pageGenerator">The page generator to create the actual SPO modern page</param>
 /// <param name="telemetry">The telemetry service</param>
 public DefaultPageTransformator(
     ILogger <DefaultPageTransformator> logger,
     IMappingProvider mappingProvider,
     ITargetPageUriResolver targetPageUriResolver,
     IEnumerable <IPagePreTransformation> pagePreTransformations,
     IEnumerable <IPagePostTransformation> pagePostTransformations,
     IOptions <PageTransformationOptions> pageTransformationOptions,
     IPageGenerator pageGenerator,
     TelemetryService telemetry)
 {
     this.logger                           = logger ?? throw new ArgumentNullException(nameof(logger));
     this.mappingProvider                  = mappingProvider ?? throw new ArgumentNullException(nameof(mappingProvider));
     this.targetPageUriResolver            = targetPageUriResolver ?? throw new ArgumentNullException(nameof(targetPageUriResolver));
     this.pagePreTransformations           = pagePreTransformations ?? throw new ArgumentNullException(nameof(pagePreTransformations));
     this.pagePostTransformations          = pagePostTransformations ?? throw new ArgumentNullException(nameof(pagePostTransformations));
     this.defaultPageTransformationOptions = pageTransformationOptions ?? throw new ArgumentNullException(nameof(pageTransformationOptions));
     this.pageGenerator                    = pageGenerator ?? throw new ArgumentNullException(nameof(pageGenerator));
     this.telemetry                        = telemetry ?? throw new ArgumentNullException(nameof(telemetry));
 }
 /// <summary>
 /// Creates a new instance
 /// </summary>
 /// <param name="targetPageUriResolver">Instance of an URI resolver to use</param>
 public SharePointTransformationDistiller(ITargetPageUriResolver targetPageUriResolver)
 {
     this.targetPageUriResolver = targetPageUriResolver ?? throw new ArgumentNullException(nameof(targetPageUriResolver));
 }