c# - 如何使用 lambda 表达式进行验证以验证某个小时是否为某个 "type"(必须为 hh :00 or hh:30)

标签 c# asp.net asp.net-mvc asp.net-core fluentvalidation

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/

相关文章:

c# - 在 C# 中比较两个列表,并使用 LINQ 或 foreach 根据条件拒绝或选择子列表

asp.net - asp :Gridview & asp:Table generated border ="0" property in > . NET4.0

c# - 用户登录后 mvc WebSecurity.CurrentUserName 为空且 CurrentUserID -1

c# - 在 C#/ASP.NET 中是否有一种简单的方法来验证用户输入是一个 URL 以防止 XSS 攻击?

c# - 实时服务器宕机 有时 asp.net 应用程序,找不到任何原因?

c# - 使用 JSON.Net 的 Web API 的驼峰式大小写问题

asp.net - 在编写自定义和不断更新的网站时,ADO.NET Entity Framework (带有 ASP.NET MVC v2)是一个可行的选择吗?

c# - ToList() - ArgumentNullException 处理

c# - .NET 中字符串的简单混淆?

c# - Windows 身份验证局域网和广域网