public async Task SendSubscribedEmailAsync(string subscriberEmailAddress, string confirmationLink, ICollection <Category> categories) { var data = new SubscribedData { ConfirmationLink = confirmationLink, SubscriberEmailAddress = subscriberEmailAddress, Categories = categories }; var emailHtmlString = await this.ParseSubscribedHtmlEmailAsync("subscribed", data); var emailTextString = await this.ParseTextEmailAsync("subscribed", data); await this.SendEmailAsync(this._mailjetSettings.NewsletterFromName, this._mailjetSettings.NewsletterFrom, subscriberEmailAddress, subscriberEmailAddress, "You have subscribed to brechtbaekelandt.net!", emailHtmlString, emailTextString); }
private async Task <string> ParseSubscribedHtmlEmailAsync(string templateName, SubscribedData data) { var htmlString = await File.ReadAllTextAsync(Path.Combine(this.TemplateRootPath, $@"EmailTemplates\{templateName}.html")); var parsedHtmlString = htmlString.Replace("%%confirmationLink%%", data.ConfirmationLink); parsedHtmlString = parsedHtmlString.Replace("%%subscriberEmailAddress%%", data.SubscriberEmailAddress); var categoriesStringBuilder = new StringBuilder(); categoriesStringBuilder.Append("<ul>"); data.Categories.ToList().ForEach((c) => { categoriesStringBuilder.Append($"<li>{c.Name}</li>"); }); categoriesStringBuilder.Append("</ul>"); parsedHtmlString = parsedHtmlString.Replace("%%categories%%", categoriesStringBuilder.ToString()); return(parsedHtmlString); }