如何使用 Lambda 表达式进行验证,以验证一小时是否为某个"type"(必须是 HH:00 或 HH:30)


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);

我必须创建一个具有开始日期,结束日期,用户ID等的事件。开始日期是日期时间,我必须进行此验证,事件的开始日期必须是 hh:00 或 hh:30。这是我用于所有其他验证(up)的。

试试这个:

RuleFor(x => x.CreatedDate)
    .Must(x => (x.Minute == 0 || x.Minute == 30) /*&& x.Second == 0*/)
    .WithMessage("Your Message here")
    //other validations

最新更新