Unify picture configuration and options registration

This commit is contained in:
2026-09-24 05:23:40 +02:00
parent 5e819d7676
commit 4d943e068e
51 changed files with 384 additions and 525 deletions
@@ -1,27 +1,21 @@
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Options;
using Musify.Application.Contracts;
using Musify.Infrastructure.Configuration;
using Musify.Application.Configuration;
namespace Musify.Infrastructure.Persistence;
public static class DatabaseDependencyInjection
{
public static IServiceCollection AddDatabase(this IServiceCollection serviceDescriptors, IConfiguration configuration)
public static IServiceCollection AddDatabase(this IServiceCollection services, IConfiguration configuration)
{
serviceDescriptors
.AddOptionsWithValidateOnStart<DatabaseConfiguration>()
.Bind(configuration.GetRequiredSection(DatabaseConfiguration.SectionName))
.ValidateDataAnnotations();
services.AddValidatedOptions<DatabaseConfiguration>(configuration);
serviceDescriptors.AddSingleton(serviceProvider =>
serviceProvider.GetRequiredService<IOptions<DatabaseConfiguration>>().Value);
services.AddDbContext<Database>();
serviceDescriptors.AddDbContext<Database>();
services.AddScoped<IDatabase>(serviceProvider => serviceProvider.GetRequiredService<Database>());
serviceDescriptors.AddScoped<IDatabase>(serviceProvider => serviceProvider.GetRequiredService<Database>());
return serviceDescriptors;
return services;
}
}