using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.DependencyInjection; using Npgsql; using Tiku.Infrastructure.Persistence; namespace Tiku.Infrastructure; public static class DependencyInjection { public static IServiceCollection AddInfrastructure( this IServiceCollection services, string connectionString) { ArgumentException.ThrowIfNullOrWhiteSpace(connectionString); services.AddSingleton(_ => NpgsqlDataSource.Create(connectionString)); services.AddDbContextPool((serviceProvider, options) => { var dataSource = serviceProvider.GetRequiredService(); options.UseNpgsql(dataSource, npgsql => npgsql.MigrationsAssembly(typeof(TikuDbContext).Assembly.FullName)); }); return services; } }