Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }