using Indotalent.Data.Entities; using Indotalent.Infrastructure.Email.Mailgun; using Indotalent.Infrastructure.Email.Mailjet; using Indotalent.Infrastructure.Email.SendGrid; using Indotalent.Infrastructure.Email.Smtp; using Microsoft.AspNetCore.Identity; namespace Indotalent.Infrastructure.Email; public static class DI { public static IServiceCollection AddEmailService(this IServiceCollection services, IConfiguration configuration) { services.AddScoped(); var emailSettings = configuration.GetSection("EmailSettings").Get() ?? new EmailSettingsModel(); if (emailSettings.SendGrid?.IsUsed == true) { services.AddHttpClient(); } else if (emailSettings.Mailgun?.IsUsed == true) { services.AddHttpClient(); } else if (emailSettings.Mailjet?.IsUsed == true) { services.AddHttpClient(); } else if (emailSettings.Smtp?.IsUsed == true) { services.AddTransient(); } else { services.AddScoped(); } services.AddTransient, IdentityEmailManager>(); return services; } }