私はこのプロジェクトのウェブ/ UI、サービス、リポジトリ、コモンなど、このケースでは問題にはならないいくつかのレイヤーを持っています。データ検索用の定数に関する質問
サイトに生成されたすべての電子メールデータを保持する電子メールテーブルがあります。また、電子メールテーブルのどの電子メールが呼び出されるべきかを追跡する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は、GUIDで、私のリポジトリに格納された値の属性を取得するための拡張子を持つUNUMです。 EmailTypeテーブルは、テスト電子メールを生成する管理者ではうまくいきますが、実際のWebレイヤーでは、サービスコールにはリポジトリ内のハードコードされた値が必要です。
私の質問は、これを行うための最良の推奨方法ですか、これを何らかの方法でより動的にすることができますか?私が気に入らない部分は、Web層がリポジトリに触れる必要があるため、私のサービス層はすべての電子メールのためのメソッドを必要とします。
また、コードの分離が懸念される場合は、サービスレイヤーに列挙型を配置すると間違った配置になります。
おかげで、「ウェブ層」コール(ビューから呼び出すサービス)に関しては、この
public string SendConfirmationEmail(EmailType selectedType, string email, string firstName, string dealName) {
Email email = EmailRepository.GetByCurrentByType(selectedType);
variables = createVariablesList();
SendEmail(email.ListId, email.externalEmailId, variables);
}
へ
「ウェブレイヤー」という用語ではどういう意味ですか? – mare
申し訳ありませんMVCを使用しているので、UIまたはWebレイヤーは実際のaspxページ/ビューとコントローラです。 –