/// <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;
 }
Пример #2
0
        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);
        }
Пример #3
0
        public static IEmailConfigurationBuilder AddFactory <TFactory>(
            this IEmailConfigurationBuilder configurationBuilder)
        {
            configurationBuilder
            .Services
            .Replace(ServiceDescriptor.Transient(typeof(IEmailFactory), typeof(TFactory)));

            return(configurationBuilder);
        }
Пример #4
0
        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);
        }
Пример #6
0
        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>();
        }
Пример #7
0
 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);
 }