public static string GenerateEmailBody(MailTemplateTypes templateType, string subject, object model) { var templateContent = TemplatePath(templateType); var viewbag = new DynamicViewBag(); //viewbag.AddValue("Url", Url); string templateCacheName = $"{templateType}-{subject}"; var body = Engine.Razor.IsTemplateCached(templateCacheName, null) ? Engine.Razor.Run(templateCacheName, null, model, viewbag) : Engine.Razor.RunCompile(templateContent, templateCacheName, null, model, viewbag); return body; }
private static string TemplatePath(MailTemplateTypes templateType) { var assembly = Assembly.GetExecutingAssembly(); // var imageStream = assembly.GetManifestResourceStream("ClientImport.Infrastructure.Messaging.pagebanner.jpg"); string templatePath; switch (templateType) { case MailTemplateTypes.Success: var rawFile = assembly.GetManifestResourceStream("ClientImport.Infrastructure.Messaging.Templates.SuccessTemplate.html"); var reader = new StreamReader(rawFile); string result = reader.ReadToEnd(); return result; case MailTemplateTypes.MissingOrganizations: rawFile = assembly.GetManifestResourceStream("ClientImport.Infrastructure.Messaging.Templates.MissingMapping.html"); reader = new StreamReader(rawFile); result = reader.ReadToEnd(); return result; case MailTemplateTypes.MultipleOrganizatonMatches: rawFile = assembly.GetManifestResourceStream("ClientImport.Infrastructure.Messaging.Templates.MultipleMatches.html"); reader = new StreamReader(rawFile); result = reader.ReadToEnd(); return result; default: throw new ArgumentOutOfRangeException(nameof(templateType), templateType, null); } }
public void SendMailFromTemplate(MailTemplateTypes templateType, string toEmail, string subject, object model) { if (SuppressEmailMessages) return; var body = GenerateEmailBody(templateType, subject, model); try { SendEmail(toEmail, subject, body, null); } catch (Exception ex) { Console.WriteLine(ex.Message); throw; } }