Files
AuditLogs/audit-logs/audit-logs/Infraestructure/ServiceCollectionExtensions.cs
T

34 lines
1.2 KiB
C#

using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using audit_logs.Models.AppSettings;
using audit.Repositories;
using audit_logs.Repositories.Interfaces;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Options;
using MongoDB.Driver;
namespace audit_logs.Infraestructure;
public static class ServiceCollectionExtensions
{
public static IServiceCollection AddMongoDb(this IServiceCollection services, IConfiguration configuration)
{
// Leer configuración desde el archivo appsettings.json
services.Configure<MongoDbSettings>(configuration.GetSection("MongoDbSettings"));
// Registrar MongoDbSettings como Singleton para ser usado en MongoRepository
services.AddSingleton(sp =>
{
var options = sp.GetRequiredService<IOptions<MongoDbSettings>>().Value;
var client = new MongoClient(options.ConnectionString);
return client.GetDatabase(options.DatabaseName);
});
// Registrar MongoRepository como servicio genérico
services.AddScoped(typeof(IMongoRepository<>), typeof(MongoRepository<>));
return services;
}
}