/// <summary> /// Construct a <see cref="HomeController"/> /// </summary> /// <param name="databaseContext">The <see cref="IDatabaseContext"/> for the <see cref="ApiController"/></param> /// <param name="authenticationContextFactory">The <see cref="IAuthenticationContextFactory"/> for the <see cref="ApiController"/></param> /// <param name="tokenFactory">The value of <see cref="tokenFactory"/></param> /// <param name="systemIdentityFactory">The value of <see cref="systemIdentityFactory"/></param> /// <param name="cryptographySuite">The value of <see cref="cryptographySuite"/></param> /// <param name="assemblyInformationProvider">The value of <see cref="assemblyInformationProvider"/></param> /// <param name="identityCache">The value of <see cref="identityCache"/></param> /// <param name="oAuthProviders">The value of <see cref="oAuthProviders"/>.</param> /// <param name="platformIdentifier">The value of <see cref="platformIdentifier"/>.</param> /// <param name="browserResolver">The value of <see cref="browserResolver"/></param> /// <param name="swarmService">The value of <see cref="swarmService"/>.</param> /// <param name="serverControl">The value of <see cref="serverControl"/>.</param> /// <param name="generalConfigurationOptions">The <see cref="IOptions{TOptions}"/> containing the value of <see cref="generalConfiguration"/>.</param> /// <param name="controlPanelConfigurationOptions">The <see cref="IOptions{TOptions}"/> containing the value of <see cref="controlPanelConfiguration"/></param> /// <param name="logger">The <see cref="ILogger"/> for the <see cref="ApiController"/></param> public HomeController( IDatabaseContext databaseContext, IAuthenticationContextFactory authenticationContextFactory, ITokenFactory tokenFactory, ISystemIdentityFactory systemIdentityFactory, ICryptographySuite cryptographySuite, IAssemblyInformationProvider assemblyInformationProvider, IIdentityCache identityCache, IOAuthProviders oAuthProviders, IPlatformIdentifier platformIdentifier, IBrowserResolver browserResolver, ISwarmService swarmService, IServerControl serverControl, IOptions <GeneralConfiguration> generalConfigurationOptions, IOptions <ControlPanelConfiguration> controlPanelConfigurationOptions, ILogger <HomeController> logger) : base( databaseContext, authenticationContextFactory, logger, false) { this.tokenFactory = tokenFactory ?? throw new ArgumentNullException(nameof(tokenFactory)); this.systemIdentityFactory = systemIdentityFactory ?? throw new ArgumentNullException(nameof(systemIdentityFactory)); this.cryptographySuite = cryptographySuite ?? throw new ArgumentNullException(nameof(cryptographySuite)); this.assemblyInformationProvider = assemblyInformationProvider ?? throw new ArgumentNullException(nameof(assemblyInformationProvider)); this.identityCache = identityCache ?? throw new ArgumentNullException(nameof(identityCache)); this.platformIdentifier = platformIdentifier ?? throw new ArgumentNullException(nameof(platformIdentifier)); this.oAuthProviders = oAuthProviders ?? throw new ArgumentNullException(nameof(oAuthProviders)); this.browserResolver = browserResolver ?? throw new ArgumentNullException(nameof(browserResolver)); this.swarmService = swarmService ?? throw new ArgumentNullException(nameof(swarmService)); this.serverControl = serverControl ?? throw new ArgumentNullException(nameof(serverControl)); generalConfiguration = generalConfigurationOptions?.Value ?? throw new ArgumentNullException(nameof(generalConfigurationOptions)); controlPanelConfiguration = controlPanelConfigurationOptions?.Value ?? throw new ArgumentNullException(nameof(controlPanelConfigurationOptions)); }