feat(infrastructure): add dependency injection configuration

This commit is contained in:
2024-12-21 12:00:00 -05:00
parent 92f9ed001c
commit 3e70ba560b

View File

@@ -0,0 +1,29 @@
using IncidentOps.Infrastructure.Auth;
using IncidentOps.Infrastructure.Data;
using IncidentOps.Infrastructure.Data.Repositories;
using Microsoft.Extensions.DependencyInjection;
namespace IncidentOps.Infrastructure;
public static class ServiceCollectionExtensions
{
public static IServiceCollection AddInfrastructure(this IServiceCollection services, string connectionString, JwtSettings jwtSettings)
{
services.AddSingleton<IDbConnectionFactory>(new DbConnectionFactory(connectionString));
services.AddSingleton(jwtSettings);
services.AddScoped<IUserRepository, UserRepository>();
services.AddScoped<IOrgRepository, OrgRepository>();
services.AddScoped<IOrgMemberRepository, OrgMemberRepository>();
services.AddScoped<IServiceRepository, ServiceRepository>();
services.AddScoped<IIncidentRepository, IncidentRepository>();
services.AddScoped<IIncidentEventRepository, IncidentEventRepository>();
services.AddScoped<IRefreshTokenRepository, RefreshTokenRepository>();
services.AddScoped<INotificationTargetRepository, NotificationTargetRepository>();
services.AddSingleton<ITokenService, TokenService>();
services.AddSingleton<IPasswordService, PasswordService>();
return services;
}
}