using Femto.Common.Infrastructure.Outbox; using Femto.Modules.Authentication.Data; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; namespace Femto.Modules.Authentication.Application; public static class AuthenticationStartup { public static void InitializeAuthenticationModule(this IServiceCollection rootContainer, string connectionString) { var hostBuilder = Host.CreateDefaultBuilder(); hostBuilder.ConfigureServices(services => ConfigureServices(services, connectionString)); var host = hostBuilder.Build(); rootContainer.AddScoped(_ => new AuthenticationModule(host)); } private static void ConfigureServices(IServiceCollection services, string connectionString) { services.AddDbContext( builder => { builder.UseNpgsql(connectionString); builder.UseSnakeCaseNamingConvention(); }); services.AddMediatR(c => c.RegisterServicesFromAssembly(typeof(AuthenticationStartup).Assembly)); services.AddDbContext(builder => { builder.UseNpgsql(); builder.UseSnakeCaseNamingConvention(); builder.EnableSensitiveDataLogging(); }); services.AddMediatR(c => { c.RegisterServicesFromAssembly(typeof(AuthenticationStartup).Assembly); }); } }