如何使用 lambda 表达式进行验证以验证某个小时是否为某个 "type"(必须为 hh:00 或 hh:30)
how to use a lambda expression for a validation to verify if an hour s a certain "type"(has to be hh:00 or 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);
我必须创建一个包含 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
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