TourIAm/TIAM.Services.Server/EmailTemplateHelper.cs

137 lines
6.2 KiB
C#

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<string, string> 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<string, string>
{
{ 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<string, string>
{
{ 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<string, string>
{
{ 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<string, string>
{
{ 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<string, string>
{
{ TiamConstClient.ForgotPasswordEmailParameters[0], userName },
{ TiamConstClient.ForgotPasswordEmailParameters[1], settingBaseUrl },
{ TiamConstClient.ForgotPasswordEmailParameters[2], userId },
{ TiamConstClient.ForgotPasswordEmailParameters[3], token }
};
return EmailTemplateHelper.ReplacePlaceholders(template, placeholders);
}
}
}