@@ -6,7 +6,7 @@ namespace OpenShock.API.Services.Email;
66
77public static class EmailServiceExtension
88{
9- public static WebApplicationBuilder AddEmailService ( this WebApplicationBuilder builder )
9+ public static async Task < WebApplicationBuilder > AddEmailService ( this WebApplicationBuilder builder )
1010 {
1111 var mailOptions = builder . Configuration . GetRequiredSection ( MailOptions . SectionName ) . Get < MailOptions > ( ) ?? throw new NullReferenceException ( ) ;
1212
@@ -18,7 +18,7 @@ public static WebApplicationBuilder AddEmailService(this WebApplicationBuilder b
1818
1919 // Add sender contact configuration
2020 builder . AddSenderContactConfiguration ( ) ;
21- builder . AddEmailServiceTemplates ( ) ;
21+ await builder . AddEmailServiceTemplates ( ) ;
2222
2323 switch ( mailOptions . Type )
2424 {
@@ -41,14 +41,21 @@ private static WebApplicationBuilder AddSenderContactConfiguration(this WebAppli
4141 return builder ;
4242 }
4343
44- private static WebApplicationBuilder AddEmailServiceTemplates ( this WebApplicationBuilder builder )
44+ private static async Task < WebApplicationBuilder > AddEmailServiceTemplates ( this WebApplicationBuilder builder )
4545 {
46+ var accountActivation = EmailTemplate . ParseFromFileThrow ( "SmtpTemplates/AccountActivation.liquid" ) ;
47+ var passwordReset = EmailTemplate . ParseFromFileThrow ( "SmtpTemplates/PasswordReset.liquid" ) ;
48+ var emailVerification = EmailTemplate . ParseFromFileThrow ( "SmtpTemplates/EmailVerification.liquid" ) ;
49+ var emailChangeNotice = EmailTemplate . ParseFromFileThrow ( "SmtpTemplates/EmailChangeNotice.liquid" ) ;
50+
51+ await Task . WhenAll ( accountActivation , passwordReset , emailVerification , emailChangeNotice ) ;
52+
4653 builder . Services . AddSingleton ( new EmailServiceTemplates
4754 {
48- AccountActivation = EmailTemplate . ParseFromFileThrow ( "SmtpTemplates/AccountActivation.liquid" ) . Result ,
49- PasswordReset = EmailTemplate . ParseFromFileThrow ( "SmtpTemplates/PasswordReset.liquid" ) . Result ,
50- EmailVerification = EmailTemplate . ParseFromFileThrow ( "SmtpTemplates/EmailVerification.liquid" ) . Result ,
51- EmailChangeNotice = EmailTemplate . ParseFromFileThrow ( "SmtpTemplates/EmailChangeNotice.liquid" ) . Result ,
55+ AccountActivation = await accountActivation ,
56+ PasswordReset = await passwordReset ,
57+ EmailVerification = await emailVerification ,
58+ EmailChangeNotice = await emailChangeNotice ,
5259 } ) ;
5360 return builder ;
5461 }
0 commit comments