public async Task <SendGridMessage> GetMessage(BaseEmailTemplateModel baseEmailTemplateModel) { Guard.ArgumentNotNull(nameof(baseEmailTemplateModel), baseEmailTemplateModel); var builderType = typeof(EmailBuilder <>).MakeGenericType(baseEmailTemplateModel.GetType()); var builder = _serviceProvider.GetRequiredService(builderType); var result = await((dynamic)builder).BuildAsync((dynamic)_serverConnectionSettings, (dynamic)baseEmailTemplateModel); return(result); }
public async Task NotifyAsync(BaseEmailTemplateModel baseEmailTemplateModel) { Guard.ArgumentNotNull(nameof(baseEmailTemplateModel), baseEmailTemplateModel); var email = await _emailBuilderRetriever.GetMessage(baseEmailTemplateModel); var response = await _sendGridClient.SendEmailAsync(email); if (response.StatusCode != HttpStatusCode.Accepted) { await _sendGridClient.SendEmailAsync(email); } }
public override async Task <string> CreateEmailBodyAsync(BaseEmailTemplateModel emailTemplateModel) { Guard.ArgumentNotNull(nameof(emailTemplateModel), emailTemplateModel); return(await EmailRenderer.RenderViewToStringAsync("Views/ForgotPassword.cshtml", emailTemplateModel)); }
public override string CreateEmailSubject(BaseEmailTemplateModel emailTemplateModel) { Guard.ArgumentNotNull(nameof(emailTemplateModel), emailTemplateModel); return("Reset Password"); }
public override string CreateEmailSubject(BaseEmailTemplateModel emailTemplateModel) { Guard.ArgumentNotNull(nameof(emailTemplateModel), emailTemplateModel); return("Account Activation"); }
public abstract Task <string> CreateEmailBodyAsync(BaseEmailTemplateModel emailTemplateModel);
public abstract string CreateEmailSubject(BaseEmailTemplateModel emailTemplateModel);