RuleFor(m => m.StartDate)
.NotEmpty().WithMessage(x => Validation.EventMessages.EmptyStartDate)
.GreaterThanOrEqualTo(DateTime.UtcNow).WithMessage(x => Validation.EventMessages.StartDatePast).When(m => m.EndDate.HasValue)
.LessThan(DateTime.UtcNow.AddMonths(1)).WithMessage(x => Validation.EventMessages.StartDateFuture).When(m => m.EndDate.HasValue)
.LessThan(m => m.EndDate.Value).WithMessage(x => Validation.EventMessages.GreaterThan).When(m => m.EndDate.HasValue)
.LessThan(m => DateTime.UtcNow.AddMinutes(15)).WithMessage(x => Validation.EventMessages.CancellationTimeSpanLess).When(m => m.EventStatus == (int)EventStatusEnum.cancelled)
.Must(CanBook).WithMessage(x => Validation.EventMessages.Limit);
我必须创建一个具有 StartDate、EndDate、userid 等的事件。StartDate 是 Datetime,我必须进行此验证,事件的 StartDate 必须是 hh:00 或 hh:30。 这就是我用于所有其他验证(向上)的内容。
最佳答案
试试这个:
RuleFor(x => x.CreatedDate)
.Must(x => (x.Minute == 0 || x.Minute == 30) /*&& x.Second == 0*/)
.WithMessage("Your Message here")
//other validations
关于c# - 如何使用 lambda 表达式进行验证以验证某个小时是否为某个 "type"(必须为 hh :00 or hh:30),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47156851/