35 lines
1.3 KiB
C#
35 lines
1.3 KiB
C#
using Microsoft.Extensions.DependencyInjection;
|
|
using Microsoft.Extensions.Hosting;
|
|
using RecNet.Domain.Repositories;
|
|
using RecNet.Domain.Services.Configuration;
|
|
using RecNet.Domain.Services.Tokens;
|
|
using RecNet.Infrastructure.Persistence;
|
|
using RecNet.Infrastructure.Persistence.Repositories;
|
|
using RecNet.Infrastructure.Services.Configuration;
|
|
using RecNet.Infrastructure.Services.Tokens;
|
|
|
|
namespace RecNet.Infrastructure;
|
|
|
|
public static class DependencyInjection
|
|
{
|
|
public static TBuilder AddInfrastructure<TBuilder>(this TBuilder builder)
|
|
where TBuilder : IHostApplicationBuilder
|
|
{
|
|
builder.AddNpgsqlDbContext<DatabaseContext>("recnet");
|
|
|
|
builder.Services
|
|
.AddOptions<JwtOptions>()
|
|
.Bind(builder.Configuration.GetSection("Jwt"))
|
|
.Validate(options => !string.IsNullOrWhiteSpace(options.Secret), "JWT secret is required.")
|
|
.ValidateOnStart();
|
|
|
|
builder.Services.AddScoped<IProfileRepository, ProfileRepository>();
|
|
builder.Services.AddScoped<IServerConfigRepository, ServerConfigRepository>();
|
|
|
|
builder.Services.AddScoped<IConfigService, ConfigService>();
|
|
builder.Services.AddScoped<ITokenService, TokenService>();
|
|
|
|
return builder;
|
|
}
|
|
}
|