Files
CleanArchitecture/CleanArchitecture/CleanArchitecture.Data/InfrastructureServiceRegistration.cs
Alejandro Sarmiento ac3d3d28b5 Crear Director
2024-02-20 12:24:02 +01:00

38 lines
1.6 KiB
C#

using CleanArchitecture.Application.Contracts.Infrastructure;
using CleanArchitecture.Application.Contracts.Persistence;
using CleanArchitecture.Application.Models;
using CleanArchitecture.Infrastructure.Email;
using CleanArchitecture.Infrastructure.Persistence;
using CleanArchitecture.Infrastructure.Repositories;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
namespace CleanArchitecture.Infrastructure
{
public static class InfrastructureServiceRegistration
{
public static IServiceCollection AddInfrastructureServices(this IServiceCollection services, IConfiguration configuration)
{
var dbConnectionString = configuration.GetConnectionString("ConnectionString");
services.AddDbContext<StreamerDbContext>(options =>
options.UseMySql(dbConnectionString, ServerVersion.AutoDetect(dbConnectionString))
.LogTo(Console.WriteLine, new[] { DbLoggerCategory.Database.Command.Name }, Microsoft.Extensions.Logging.LogLevel.Information)
);
services.AddScoped<IUnitOfWork, UnitOfWork>();
services.AddScoped(typeof(IAsyncRepository<>), typeof(RepositoryBase<>));
services.AddScoped<IVideoRepository, VideoRepository>();
services.AddScoped<IStreamerRepository, StreamerRepository>();
services.Configure<EmailSettings>(c =>configuration.GetSection("EmailSettings"));
services.AddTransient<IEmailService, EmailService>();
return services;
}
}
}