using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using MongoDB.Driver; using SumaTube.Infra.Contracts.Repositories.Videos; using SumaTube.Infra.MongoDB.Repositories.Videos; using SumaTube.Infra.VideoSumarizer.Contracts; using SumaTube.Infra.VideoSumarizer.Videos; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace SumaTube.Infra.Register { public static class InfraServicesRegister { public static IServiceCollection AddInfraServices(this IServiceCollection services, ConfigurationManager configuration) { var mongoConnectionString = configuration.GetConnectionString("MongoDB") ?? "mongodb://localhost:27017"; var mongoDatabaseName = configuration.GetValue("MongoDB:DatabaseName") ?? "SumaTube"; services.AddSingleton(sp => { return new MongoClient(mongoConnectionString); }); services.AddScoped(sp => { var client = sp.GetRequiredService(); return client.GetDatabase(mongoDatabaseName); }); services.AddScoped(); services.AddScoped(); return services; } } }