public MercuryFacade( IValidator validator, IPathFinder pathFinder, IResourceLoader resourceLoader, ITemplateProcessor templateProcessor, IEmailer emailer, IOptions <MercurySettings> options) { this.resourceLoader = resourceLoader.ThrowIfNull(nameof(resourceLoader)); this.templateProcessor = templateProcessor.ThrowIfNull(nameof(templateProcessor)); this.emailer = emailer.ThrowIfNull(nameof(emailer)); this.pathFinder = pathFinder.ThrowIfNull(nameof(pathFinder)); this.validator = validator.ThrowIfNull(nameof(validator)); settings = options.ThrowIfNull(nameof(options)).Value; settings.ThrowIfNull(nameof(settings)); }