Есть ли лучший способ вызвать и получить мои шаблоны электронной почты из файлов html в моем решении?
Я вызываю «AppDomain.CurrentDomain.BaseDirectory» из проекта функции Azure и моего проекта ASP.Net MVC, чтобы получить путь к моим шаблонам электронной почты. (файлы .html)
Но вызов, сделанный из функции Azure, даже не возвращает путь в решении!
Проще говоря, проект функций ASP.Net MVC и Azure вызывает EmailService.cs в другом проекте с именем projectName.Services для создания электронных писем.
Из обоих проектов я вызываю EmailService.cs следующим образом.
_emailService.CancelEventSendHostEmail(value1, someObject, anotherObject, "someMessage");
и в «CancelEventSendHostEmail» я делаю что-то вроде этого
CancelEventSendHostEmail(/*incoming properties*/) {
var outerTemplateHtml = GetEmailTemplate("email-outer-body-template.html");
var specificTemplate= GetEmailTemplate("someTemplate.html");
// do some work to fill in values in the email
// send the email
}
теперь GetEmailTemplate выглядит так
public StringBuilder GetEmailTemplate(string templateName)
{
string htmlAsString
= File.ReadAllText(Path.Combine(Directory.GetParent(Directory.GetParent(AppDomain.CurrentDomain.BaseDirectory).ToString()).ToString(),
@"Yogabandy2017.Services\EmailingTemplates", templateName));
return new StringBuilder(htmlAsString);
}
Теперь это отлично работает с проектом ASP.Net MVC для поиска, получения и чтения в файле шаблона HTML в виде строки. EmailService.cs без проблем находит файл из проекта ASP.Net MVC, но когда я вызываю GetEmailTemaplate из моей функции Azure,
AppDomain.CurrentDomain.BaseDirectory
path возвращает путь, который не находится в каталоге проекта или решения.
Он возвращает путь, который выглядит так
C:\Users\chuckdawit\AppData\Local\AzureFunctionsTools\Releases\1.2.0\cli\
где, как будто я нахожусь в приложении asp.net mvc и читаю в тексте «AppDomain.CurrentDomain.BaseDirectory», возвращает такой путь
C:\Users\chuckdawit\Source\Workspaces\YogaBandy2017\YogaBandy2017\YogaBandy2017\
где я могу затем найти файл шаблона электронной почты html в папке в этом проекте!