/// <summary> /// Add SendGrid email sender /// </summary> /// <param name="builder"></param> /// <param name="configure"></param> /// <returns></returns> public static IEmailConfigurationBuilder AddSendGridSender( this IEmailConfigurationBuilder builder, Action<SendGridOptions> configure) { builder.Services.Configure<SendGridOptions>(configure); builder.Services.Replace(ServiceDescriptor.Transient<IEmailSender, SendGridEmailSender>()); return builder; }
public static IEmailConfigurationBuilder AddInMemoryTemplateStorage( this IEmailConfigurationBuilder configurationBuilder, IEnumerable <EmailTemplate> templates) { var descriptor = ServiceDescriptor.Transient <IEmailTemplateStorage, NullEmailTemplateStorage>(); configurationBuilder.Services.Remove(descriptor); configurationBuilder.Services.AddSingleton <IEmailTemplateStorage>(new InMemoryEmailTemplateStorage(templates)); return(configurationBuilder); }
public static IEmailConfigurationBuilder AddFactory <TFactory>( this IEmailConfigurationBuilder configurationBuilder) { configurationBuilder .Services .Replace(ServiceDescriptor.Transient(typeof(IEmailFactory), typeof(TFactory))); return(configurationBuilder); }
public static IEmailConfigurationBuilder SetOptions( this IEmailConfigurationBuilder configurationBuilder, Action <EmailOptions> configure) { configurationBuilder .Services .Configure <EmailOptions>(configure); return(configurationBuilder); }
/// <summary> /// Add Razor template engine /// </summary> /// <param name="builder"></param> /// <returns></returns> public static IEmailConfigurationBuilder AddRazorTemplateEngine( this IEmailConfigurationBuilder builder) { var descriptor = ServiceDescriptor.Transient <IEmailTemplateEngine, NullEmailTemplateEngine>(); builder.Services.Remove(descriptor); builder.Services.AddSingleton <IEmailTemplateEngine, RazorTemplateEngine>(); return(builder); }
public static void AddQueue(this IEmailConfigurationBuilder builder) { builder .Services .Replace(ServiceDescriptor.Transient(typeof(IEmailFactory), typeof(QueueEmailFactory))); builder.Services.AddHostedService <QueueEmailService>(); builder.Services.AddSingleton <IEmailMessageQueue, EmailMessageQueue>(); }
public static IEmailConfigurationBuilder AddSendToFileSender(this IEmailConfigurationBuilder configurationBuilder, Action <SendToFileEmailSenderOptions> configure) { configurationBuilder.Services.Configure <SendToFileEmailSenderOptions>(configure); configurationBuilder.Services.Replace(ServiceDescriptor.Transient(typeof(IEmailSender), typeof(SendToFileEmailSender))); return(configurationBuilder); }