既存のasp.net(c#)アプリケーションがあります。採用日と登録日を指定して発効日を計算するための柔軟なルールを作成する方法をユーザーに提供する必要があります。
使用される可能性のあるルールの例:
- 採用日または登録日の遅い方
- HireDate+90日
- 登録日から1か月後
- 登録日がその月の15日より前の場合、発効日は翌月の1日です。15日以降の場合は、その翌月の1日です。
最初はいくつかのオフセットフィールド(日オフセット、月オフセットなど)から始めましたが、新しい要件に遭遇すると、現在のアプローチには十分な柔軟性がないことに気付くようになります。
私がやりたいのは、エンドユーザーが2つのパラメーター(hiredate、enrollmentdate)を指定して日付を返す関数を定義し、その関数をデータベースに格納できるようにすることです。発効日を計算する必要がある場合は、この関数をデータベースから引き出して実行し、パラメーターを渡して発効日を取得します。
私が必要とするのは(私が思うに)この関数の作成を可能にするドメイン固有言語(DSL)です。その構文では、日付を簡単に操作できるようにする必要があります。
要件に合ったDSLに関する推奨事項を探しています。私のDSL戦略がベースから外れている場合は、別の方法をお勧めしてください。ありがとうございました。