mirror of
https://github.com/hargata/lubelog.git
synced 2025-12-10 00:46:08 -06:00
translatable Email correspondence
This commit is contained in:
parent
0555dcbc43
commit
538a79319e
@ -15,16 +15,21 @@ namespace CarCareTracker.Helper
|
|||||||
public class MailHelper : IMailHelper
|
public class MailHelper : IMailHelper
|
||||||
{
|
{
|
||||||
private readonly MailConfig mailConfig;
|
private readonly MailConfig mailConfig;
|
||||||
|
private readonly string serverLanguage;
|
||||||
private readonly IFileHelper _fileHelper;
|
private readonly IFileHelper _fileHelper;
|
||||||
|
private readonly ITranslationHelper _translator;
|
||||||
private readonly ILogger<MailHelper> _logger;
|
private readonly ILogger<MailHelper> _logger;
|
||||||
public MailHelper(
|
public MailHelper(
|
||||||
IConfigHelper config,
|
IConfigHelper config,
|
||||||
IFileHelper fileHelper,
|
IFileHelper fileHelper,
|
||||||
|
ITranslationHelper translationHelper,
|
||||||
ILogger<MailHelper> logger
|
ILogger<MailHelper> logger
|
||||||
) {
|
) {
|
||||||
//load mailConfig from Configuration
|
//load mailConfig from Configuration
|
||||||
mailConfig = config.GetMailConfig();
|
mailConfig = config.GetMailConfig();
|
||||||
|
serverLanguage = config.GetServerLanguage();
|
||||||
_fileHelper = fileHelper;
|
_fileHelper = fileHelper;
|
||||||
|
_translator = translationHelper;
|
||||||
_logger = logger;
|
_logger = logger;
|
||||||
}
|
}
|
||||||
public OperationResponse NotifyUserForRegistration(string emailAddress, string token)
|
public OperationResponse NotifyUserForRegistration(string emailAddress, string token)
|
||||||
@ -36,8 +41,8 @@ namespace CarCareTracker.Helper
|
|||||||
if (string.IsNullOrWhiteSpace(emailAddress) || string.IsNullOrWhiteSpace(token)) {
|
if (string.IsNullOrWhiteSpace(emailAddress) || string.IsNullOrWhiteSpace(token)) {
|
||||||
return OperationResponse.Failed("Email Address or Token is invalid");
|
return OperationResponse.Failed("Email Address or Token is invalid");
|
||||||
}
|
}
|
||||||
string emailSubject = "Your Registration Token for LubeLogger";
|
string emailSubject = _translator.Translate(serverLanguage, "Your Registration Token for LubeLogger");
|
||||||
string emailBody = $"A token has been generated on your behalf, please complete your registration for LubeLogger using the token: {token}";
|
string emailBody = $"{_translator.Translate(serverLanguage, "A token has been generated on your behalf, please complete your registration for LubeLogger using the token")}: {token}";
|
||||||
var result = SendEmail(new List<string> { emailAddress }, emailSubject, emailBody);
|
var result = SendEmail(new List<string> { emailAddress }, emailSubject, emailBody);
|
||||||
if (result)
|
if (result)
|
||||||
{
|
{
|
||||||
@ -57,8 +62,8 @@ namespace CarCareTracker.Helper
|
|||||||
{
|
{
|
||||||
return OperationResponse.Failed("Email Address or Token is invalid");
|
return OperationResponse.Failed("Email Address or Token is invalid");
|
||||||
}
|
}
|
||||||
string emailSubject = "Your Password Reset Token for LubeLogger";
|
string emailSubject = _translator.Translate(serverLanguage, "Your Password Reset Token for LubeLogger");
|
||||||
string emailBody = $"A token has been generated on your behalf, please reset your password for LubeLogger using the token: {token}";
|
string emailBody = $"{_translator.Translate(serverLanguage, "A token has been generated on your behalf, please reset your password for LubeLogger using the token")}: {token}";
|
||||||
var result = SendEmail(new List<string> { emailAddress }, emailSubject, emailBody);
|
var result = SendEmail(new List<string> { emailAddress }, emailSubject, emailBody);
|
||||||
if (result)
|
if (result)
|
||||||
{
|
{
|
||||||
@ -79,8 +84,8 @@ namespace CarCareTracker.Helper
|
|||||||
{
|
{
|
||||||
return OperationResponse.Failed("Email Address or Token is invalid");
|
return OperationResponse.Failed("Email Address or Token is invalid");
|
||||||
}
|
}
|
||||||
string emailSubject = "Your User Account Update Token for LubeLogger";
|
string emailSubject = _translator.Translate(serverLanguage, "Your User Account Update Token for LubeLogger");
|
||||||
string emailBody = $"A token has been generated on your behalf, please update your account for LubeLogger using the token: {token}";
|
string emailBody = $"{_translator.Translate(serverLanguage, "A token has been generated on your behalf, please update your account for LubeLogger using the token")}: {token}";
|
||||||
var result = SendEmail(new List<string> { emailAddress}, emailSubject, emailBody);
|
var result = SendEmail(new List<string> { emailAddress}, emailSubject, emailBody);
|
||||||
if (result)
|
if (result)
|
||||||
{
|
{
|
||||||
@ -107,17 +112,18 @@ namespace CarCareTracker.Helper
|
|||||||
}
|
}
|
||||||
//get email template, this file has to exist since it's a static file.
|
//get email template, this file has to exist since it's a static file.
|
||||||
var emailTemplatePath = _fileHelper.GetFullFilePath(StaticHelper.ReminderEmailTemplate);
|
var emailTemplatePath = _fileHelper.GetFullFilePath(StaticHelper.ReminderEmailTemplate);
|
||||||
string emailSubject = $"Vehicle Reminders From LubeLogger - {DateTime.Now.ToShortDateString()}";
|
string emailSubject = $"{_translator.Translate(serverLanguage, "Vehicle Reminders From LubeLogger")} - {DateTime.Now.ToShortDateString()}";
|
||||||
//construct html table.
|
//construct html table.
|
||||||
string emailBody = File.ReadAllText(emailTemplatePath);
|
string emailBody = File.ReadAllText(emailTemplatePath);
|
||||||
emailBody = emailBody.Replace("{VehicleInformation}", $"{vehicle.Year} {vehicle.Make} {vehicle.Model} #{StaticHelper.GetVehicleIdentifier(vehicle)}");
|
emailBody = emailBody.Replace("{VehicleInformation}", $"{vehicle.Year} {vehicle.Make} {vehicle.Model} #{StaticHelper.GetVehicleIdentifier(vehicle)}");
|
||||||
|
string tableHeader = $"<th>{_translator.Translate(serverLanguage, "Urgency")}</th><th>{_translator.Translate(serverLanguage, "Description")}</th><th>{_translator.Translate(serverLanguage, "Due")}</th>";
|
||||||
string tableBody = "";
|
string tableBody = "";
|
||||||
foreach(ReminderRecordViewModel reminder in reminders)
|
foreach(ReminderRecordViewModel reminder in reminders)
|
||||||
{
|
{
|
||||||
var dueOn = reminder.Metric == ReminderMetric.Both ? $"{reminder.Date.ToShortDateString()} or {reminder.Mileage}" : reminder.Metric == ReminderMetric.Date ? $"{reminder.Date.ToShortDateString()}" : $"{reminder.Mileage}";
|
var dueOn = reminder.Metric == ReminderMetric.Both ? $"{reminder.Date.ToShortDateString()} or {reminder.Mileage}" : reminder.Metric == ReminderMetric.Date ? $"{reminder.Date.ToShortDateString()}" : $"{reminder.Mileage}";
|
||||||
tableBody += $"<tr class='{reminder.Urgency}'><td>{StaticHelper.GetTitleCaseReminderUrgency(reminder.Urgency)}</td><td>{reminder.Description}</td><td>{dueOn}</td></tr>";
|
tableBody += $"<tr class='{reminder.Urgency}'><td>{_translator.Translate(serverLanguage, StaticHelper.GetTitleCaseReminderUrgency(reminder.Urgency))}</td><td>{reminder.Description}</td><td>{dueOn}</td></tr>";
|
||||||
}
|
}
|
||||||
emailBody = emailBody.Replace("{TableBody}", tableBody);
|
emailBody = emailBody.Replace("{TableHeader}", tableHeader).Replace("{TableBody}", tableBody);
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var result = SendEmail(emailAddresses, emailSubject, emailBody);
|
var result = SendEmail(emailAddresses, emailSubject, emailBody);
|
||||||
|
|||||||
@ -69,8 +69,8 @@ builder.Services.AddSingleton<IGasHelper, GasHelper>();
|
|||||||
builder.Services.AddSingleton<IReminderHelper, ReminderHelper>();
|
builder.Services.AddSingleton<IReminderHelper, ReminderHelper>();
|
||||||
builder.Services.AddSingleton<IReportHelper, ReportHelper>();
|
builder.Services.AddSingleton<IReportHelper, ReportHelper>();
|
||||||
builder.Services.AddSingleton<IConfigHelper, ConfigHelper>();
|
builder.Services.AddSingleton<IConfigHelper, ConfigHelper>();
|
||||||
builder.Services.AddSingleton<IMailHelper, MailHelper>();
|
|
||||||
builder.Services.AddSingleton<ITranslationHelper, TranslationHelper>();
|
builder.Services.AddSingleton<ITranslationHelper, TranslationHelper>();
|
||||||
|
builder.Services.AddSingleton<IMailHelper, MailHelper>();
|
||||||
|
|
||||||
//configure logic
|
//configure logic
|
||||||
builder.Services.AddSingleton<ILoginLogic, LoginLogic>();
|
builder.Services.AddSingleton<ILoginLogic, LoginLogic>();
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@ -33,15 +33,7 @@ td, th {
|
|||||||
<h2>{VehicleInformation}</h2>
|
<h2>{VehicleInformation}</h2>
|
||||||
<table>
|
<table>
|
||||||
<tr>
|
<tr>
|
||||||
<th>
|
{TableHeader}
|
||||||
Urgency
|
|
||||||
</th>
|
|
||||||
<th>
|
|
||||||
Description
|
|
||||||
</th>
|
|
||||||
<th>
|
|
||||||
Due
|
|
||||||
</th>
|
|
||||||
</tr>
|
</tr>
|
||||||
{TableBody}
|
{TableBody}
|
||||||
</table>
|
</table>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user