В моем проекте есть следующие слои: Web / UI, Service, Repository, Common и некоторые другие, которые я не считаю важными для этого случая.
У меня есть таблица электронной почты, в которой хранятся все сгенерированные на сайте данные электронной почты. У меня также есть таблица с именем EmailType, которая отслеживает, какая электронная почта в таблице электронной почты должна быть вызвана.
В моем почтовом сервисе у меня есть следующий метод.
public string SendPurchaseConfirmationEmail(string email, string firstName, string dealName) {
Email email = EmailRepository.GetByCurrentByType(EmailType.PurchaseEmail.GetStringValue());
variables = createVariablesList();
SendEmail(email.ListId, email.externalEmailId, variables);
}
EmailType - это unum с расширением для получения атрибута value, который является guid и хранится в моем репозитории. Таблица EmailType отлично работает в администраторе, который генерирует тестовые электронные письма, но для реального веб-уровня вызов службы требует жестко закодированных значений в хранилище.
У меня вопрос: это лучший или рекомендуемый способ сделать это, или я могу каким-то образом сделать это более динамичным? В этой части мне не нравится, что моему сервисному слою нужен метод для каждого письма, поскольку веб-слой должен касаться хранилища.
Кроме того, размещение перечисления в сервисном слое было бы неправильным размещением, если возникла проблема с разделением кода.
Спасибо