PlanTempusApp/PlanTempus.SetupInfrastructure/Startup.cs

51 lines
1.5 KiB
C#
Raw Permalink Normal View History

2025-02-06 16:58:13 +01:00
using Autofac;
using PlanTempus.Core.Configurations;
using PlanTempus.Core.Configurations.JsonConfigProvider;
using PlanTempus.Core.ModuleRegistry;
2025-03-10 15:56:22 +01:00
using PlanTempus.Core.SeqLogging;
using PlanTempus.Database.Core;
2025-02-06 16:58:13 +01:00
namespace PlanTempus.SetupInfrastructure
2025-02-06 16:58:13 +01:00
{
public class Startup
{
public virtual IConfigurationRoot Configuration()
{
var configuration = new ConfigurationBuilder()
.AddJsonFile("appconfiguration.json")
.Build();
2025-02-06 16:58:13 +01:00
return configuration;
}
2025-02-06 16:58:13 +01:00
public void ConfigureContainer(ContainerBuilder builder)
{
2025-02-06 16:58:13 +01:00
var configuration = Configuration();
2025-02-06 16:58:13 +01:00
builder.RegisterModule(new Database.ModuleRegistry.DbPostgreSqlModule
{
ConnectionString = configuration.GetConnectionString("DefaultConnection")
});
2025-02-06 16:58:13 +01:00
builder.RegisterModule(new TelemetryModule
{
TelemetryConfig = configuration.GetSection("ApplicationInsights").ToObject<TelemetryConfig>()
});
2025-02-06 16:58:13 +01:00
builder.RegisterModule(new SeqLoggingModule
{
2025-03-10 15:56:22 +01:00
SeqConfiguration = configuration.GetSection("SeqConfiguration").ToObject<SeqConfiguration>()
});
2025-02-06 16:58:13 +01:00
2025-02-06 23:46:55 +01:00
builder.RegisterAssemblyTypes(typeof(IDbConfigure<>).Assembly)
.AsClosedTypesOf(typeof(IDbConfigure<>))
.AsSelf();
2025-02-11 17:07:01 +01:00
builder.RegisterType<ConsoleService>();
2025-02-20 17:14:53 +01:00
}
}
2025-02-06 16:58:13 +01:00
}