tgstation-server  4.4.0
The /tg/station 13 server suite
SetupApplication.cs
Go to the documentation of this file.
1 using Microsoft.Extensions.Configuration;
2 using Microsoft.Extensions.DependencyInjection;
3 using Microsoft.Extensions.Hosting;
4 using Serilog.Events;
5 using System;
10 using Tgstation.Server.Host.IO;
12 
13 namespace Tgstation.Server.Host.Setup
14 {
19  {
23  protected static readonly IIOManager IOManager = new DefaultIOManager();
24 
29 
33  protected IConfiguration Configuration { get; }
34 
39  public SetupApplication(IConfiguration configuration)
40  {
41  Configuration = configuration ?? throw new ArgumentNullException(nameof(configuration));
42  }
43 
48  public void ConfigureServices(IServiceCollection services)
49  {
50  if (services == null)
51  throw new ArgumentNullException(nameof(services));
52 
53  services.SetupLogging(config => config.MinimumLevel.Override("Microsoft", LogEventLevel.Warning));
54 
55  services.AddSingleton(IOManager);
56  services.AddSingleton(AssemblyInformationProvider);
57 
58  services.AddSingleton<IConsole, IO.Console>();
59  services.AddSingleton<IDatabaseConnectionFactory, DatabaseConnectionFactory>();
60  services.AddSingleton<IPlatformIdentifier, PlatformIdentifier>();
61  services.AddSingleton<IAsyncDelayer, AsyncDelayer>();
62 
63  services.UseStandardConfig<GeneralConfiguration>(Configuration);
64  services.UseStandardConfig<DatabaseConfiguration>(Configuration);
65  services.UseStandardConfig<FileLoggingConfiguration>(Configuration);
66 
67  ConfigureHostedService(services);
68  }
69 
74  protected virtual void ConfigureHostedService(IServiceCollection services)
75  {
76  services.AddSingleton<IPostSetupServices, PostSetupServices>();
77  services.AddSingleton<IHostedService, SetupWizard>();
78  }
79  }
80 }
Abstraction for global::System.Console
Definition: IConsole.cs:9
static readonly IAssemblyInformationProvider AssemblyInformationProvider
The IAssemblyInformationProvider for the SetupApplication.
DI root for configuring a SetupWizard.
void ConfigureServices(IServiceCollection services)
Configure dependency injected services.
Set of objects needed to configure an Core.Application.
Configuration options for the Database.DatabaseContext
virtual void ConfigureHostedService(IServiceCollection services)
Configures the IHostedService.
IIOManager that resolves paths to Environment.CurrentDirectory
SetupApplication(IConfiguration configuration)
Initializes a new instance of the SetupApplication .
Interface for using filesystems
Definition: IIOManager.cs:11
For identifying the current platform