public SetupController(
            IApplicationEnvironment appEnv,
            ILogger<SetupController> logger,
            IOptions<SetupOptions> setupOptionsAccessor,
            SetupManager setupManager,
            IAuthorizationService authorizationService,
            IEnumerable<ISetupTask> setupSteps = null
        )
        {
            if (appEnv == null) { throw new ArgumentNullException(nameof(appEnv)); }
            if (logger == null) { throw new ArgumentNullException(nameof(logger)); }
            if (setupOptionsAccessor == null) { throw new ArgumentNullException(nameof(setupOptionsAccessor)); }
            if (setupManager == null) { throw new ArgumentNullException(nameof(setupManager)); }
            if (authorizationService == null) { throw new ArgumentNullException(nameof(authorizationService)); }

            log = logger;
            appBasePath = appEnv.ApplicationBasePath;
            this.setupManager = setupManager;
            setupOptions = setupOptionsAccessor.Value;
            this.authorizationService = authorizationService;
            if(setupSteps != null)
            {
                this.setupSteps = setupSteps;
            }

        }