using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using CMSMicroservice.Application.Common.Interfaces;
using CMSMicroservice.Infrastructure.Persistence;
using CMSMicroservice.Infrastructure.Services;
namespace CMSMicroservice.Infrastructure;
///
/// کلاس تزریق وابستگی برای لایه Infrastructure
///
public static class DependencyInjection
{
///
/// افزودن سرویس های Infrastructure به DI Container
///
/// IServiceCollection
/// IConfiguration
/// IServiceCollection
public static IServiceCollection AddInfrastructure(this IServiceCollection services, IConfiguration configuration)
{
// Database Configuration
services.AddDbContext(options =>
options.UseSqlServer(
configuration.GetConnectionString("DefaultConnection"),
b => b.MigrationsAssembly(typeof(ApplicationDbContext).Assembly.FullName)));
// Application Context Interface
services.AddScoped(provider => provider.GetRequiredService());
// Business Services
services.AddScoped();
return services;
}
}