34 lines
1.2 KiB
C#
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;
|
|
}
|
|
} |