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);
}
}
}