レポートの内容を制御するいくつかの引数を使用して文字列を解析する必要があるレポート サーバーがあります。
これを支援するために、パーサー ライブラリ sprache を使用しています。私が立ち往生していることを除いて、すべてが正常に機能しています。
今日、昨日、先週、先月、なし、またはカスタムの値のいずれかになる時間フィルターがあります。
私にいくらかの悲しみを与えているのは習慣です。他のすべては単純な文字列です。Custom には、後で from プロパティと to プロパティもあります。
private static readonly Parser<DataFilterEntity> TimeFilter =
from filter in Parse.String("today").Return(DataFilterEntity.Today)
.Or(Parse.String("yesterday").Return(DataFilterEntity.Yesterday)
.Or(Parse.String("last week").Return(DataFilterEntity.LastWeek)
.Or(Parse.String("last month").Return(DataFilterEntity.LastMonth)
.Or(Parse.String("none").Return(DataFilterEntity.None))
.Or(Parse.String("custom").Return(DataFilterEntity.Custom())))))
select filter;
カスタムラインが問題です。「カスタム」文字列を解析する必要がありますが、次に from および to DateTime フィールドも解析し、それらを DataFilterEntity.Custom(from, to) に渡します。
どんなアイデアでも大歓迎です。