using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using MyHN.Application; using MyHN.Domain; using MediatR; using MyHN.Infrastructure.Repositories; namespace MyHN.Infrastructure { public class MyHNServicesBuilder { private readonly IServiceCollection _services; public MyHNServicesBuilder(IServiceCollection services) { _services = services; } /// /// Enregistre un service pour fournir l'utilisateur connecté à la plateforme. /// /// public void AddUserProvider() where TUserProvider : class, IUserProvider { _services.AddScoped(); } } public static class ServiceCollectionExtensions { /// /// Ajoute les services nécessaires à la gestion de la plateforme de liens. /// /// /// /// public static MyHNServicesBuilder AddMyHNServices( this IServiceCollection services , IConfiguration configuration) { services.AddDbContext(options => options.UseSqlite(configuration.GetConnectionString("Default"))); services.AddScoped(); services.AddScoped(); services.AddScoped(); services.AddMediatR(typeof(CreateLinkCommand)); return new MyHNServicesBuilder(services); } } }