using System; using System.Collections.Generic; using System.IO; using System.Reflection; using TIAM.Core.Consts; namespace TIAM.Services.Server { public static class EmailTemplateHelper { public static string GetTemplate(string templateName) { var assembly = Assembly.GetExecutingAssembly(); var resourceName = $"TIAM.Services.Server.EmbeddedResources.EmailTemplates.{templateName}.html"; Console.WriteLine(resourceName); if (assembly.GetManifestResourceStream(resourceName) != null) { using (Stream stream = assembly.GetManifestResourceStream(resourceName)) { if (stream != null) { using (StreamReader reader = new StreamReader(stream)) { return reader.ReadToEnd(); } } else { return "File not found"; } } } else { return "Error"; } } public static string ReplacePlaceholders(string template, IDictionary placeholders) { foreach (var placeholder in placeholders) { template = template.Replace($"{{{{{placeholder.Key}}}}}", placeholder.Value); } return template; } public static string GenerateForgotPasswordEmail(string userName, string settingBaseUrl, string userId, string token) { string template = EmailTemplateHelper.GetTemplate(TiamConstClient.ForgotPasswordEmailTemplateName); var placeholders = new Dictionary { { TiamConstClient.ForgotPasswordEmailParameters[0], userName }, { TiamConstClient.ForgotPasswordEmailParameters[1], settingBaseUrl }, { TiamConstClient.ForgotPasswordEmailParameters[2], userId }, { TiamConstClient.ForgotPasswordEmailParameters[3], token } }; return EmailTemplateHelper.ReplacePlaceholders(template, placeholders); } public static string GenerateNewTransferEmail(string userName, string fromAddress, string toAddress, string appointment, string fullName, string passengerCount, string luggageCount, string settingBaseUrl, string transferId) { string template = EmailTemplateHelper.GetTemplate(TiamConstClient.NewTransferEmailTemplateName); var placeholders = new Dictionary { { TiamConstClient.NewTransferEmailParameters[0], userName }, { TiamConstClient.NewTransferEmailParameters[1], fromAddress }, { TiamConstClient.NewTransferEmailParameters[2], toAddress }, { TiamConstClient.NewTransferEmailParameters[3], appointment }, { TiamConstClient.NewTransferEmailParameters[4], fullName }, { TiamConstClient.NewTransferEmailParameters[5], passengerCount }, { TiamConstClient.NewTransferEmailParameters[6], luggageCount }, { TiamConstClient.NewTransferEmailParameters[7], settingBaseUrl }, { TiamConstClient.NewTransferEmailParameters[8], transferId } }; return EmailTemplateHelper.ReplacePlaceholders(template, placeholders); } public static string GenerateTransferModifiedEmail(string userName, string fromAddress, string toAddress, string appointment, string fullName, string passengerCount, string luggageCount, string settingBaseUrl, string transferId) { string template = EmailTemplateHelper.GetTemplate(TiamConstClient.TransferModifiedEmailTemplateName); var placeholders = new Dictionary { { TiamConstClient.NewTransferEmailParameters[0], userName }, { TiamConstClient.NewTransferEmailParameters[1], fromAddress }, { TiamConstClient.NewTransferEmailParameters[2], toAddress }, { TiamConstClient.NewTransferEmailParameters[3], appointment }, { TiamConstClient.NewTransferEmailParameters[4], fullName }, { TiamConstClient.NewTransferEmailParameters[5], passengerCount }, { TiamConstClient.NewTransferEmailParameters[6], luggageCount }, { TiamConstClient.NewTransferEmailParameters[7], settingBaseUrl }, { TiamConstClient.NewTransferEmailParameters[8], transferId } }; return EmailTemplateHelper.ReplacePlaceholders(template, placeholders); } public static string GenerateGeneralEmail(string userName, string messageBody, string settingBaseUrl, string userId) { string template = EmailTemplateHelper.GetTemplate(TiamConstClient.GeneralEmailTemplateName); var placeholders = new Dictionary { { TiamConstClient.GeneralEmailParameters[0], userName }, { TiamConstClient.GeneralEmailParameters[1], messageBody }, { TiamConstClient.GeneralEmailParameters[2], settingBaseUrl }, { TiamConstClient.GeneralEmailParameters[3], userId } }; return EmailTemplateHelper.ReplacePlaceholders(template, placeholders); } public static string GenerateWelcomeEmail(string userName, string settingBaseUrl, string userId, string token) { string template = EmailTemplateHelper.GetTemplate(TiamConstClient.WelcomeEmailTemplateName); var placeholders = new Dictionary { { TiamConstClient.ForgotPasswordEmailParameters[0], userName }, { TiamConstClient.ForgotPasswordEmailParameters[1], settingBaseUrl }, { TiamConstClient.ForgotPasswordEmailParameters[2], userId }, { TiamConstClient.ForgotPasswordEmailParameters[3], token } }; return EmailTemplateHelper.ReplacePlaceholders(template, placeholders); } } }