我有一个报表服务器,它需要解析一个带有一些参数的字符串,这些参数控制报表中的内容。
我正在使用解析器库语言来帮助解决这个问题。一切都很好,除了我坚持的一件事。
我有一个时间过滤器,它可以是以下值之一:今天、昨天、上周、上个月、无或自定义。
习惯让我有些悲伤。所有其他的只是简单的字符串。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)
任何想法都非常感谢。