using ComplianceNFs.Service; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using ComplianceNFs.Core.Ports; using ComplianceNFs.Infrastructure.Repositories; using ComplianceNFs.Infrastructure.Mail; using ComplianceNFs.Infrastructure.Parsers; using ComplianceNFs.Infrastructure.Archiving; IHost host = Host.CreateDefaultBuilder(args) .ConfigureAppConfiguration((hostingContext, config) => { config.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true); }) .ConfigureServices((context, services) => { var config = context.Configuration; // Register infrastructure services.AddSingleton(sp => new AccessDbRepository(config["AccessConnectionString"])); services.AddSingleton(sp => new AttachmentRepository(config["PostgresConnectionString"])); services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); services.AddSingleton(sp => new FileArchiver(config["ArchiveBasePath"])); // Register application services services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); services.AddHostedService(); }) .Build(); host.Run();