Files
PracticeCalendar/PracticeCalendar.Infrastructure/InfrastructureDI.cs
T
2022-10-06 16:53:07 +03:00

31 lines
1.1 KiB
C#

using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using PracticeCalendar.Domain.Common.Interfaces;
using PracticeCalendar.Domain.Interfaces;
using PracticeCalendar.Infrastructure.Notification;
using PracticeCalendar.Infrastructure.Persistence;
using System;
namespace PracticeCalendar.Infrastructure
{
public static class InfrastructureDI
{
public static IServiceCollection AddInfrastructure(this IServiceCollection services, IConfigurationRoot configuration)
{
string connectionString = configuration.GetConnectionString("SqliteConnection");
services.AddDbContext(connectionString);
services.AddTransient<IEmailSender, FileEmailSender>();
services.AddScoped(typeof(IRepository<>), typeof(EfRepository<>));
return services;
}
public static void AddDbContext(this IServiceCollection services, string connectionString) =>
services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlite(connectionString));
}
}