イベントの開始日時と終了日時を入力できるフォームがあります。FluentValidation - 複数のプロパティにわたる検証
public class EventModelValidator : AbstractValidator<EventViewModel>
{
public EventModelValidator()
{
RuleFor(x => x.StartDate)
.NotEmpty().WithMessage("Date is required!")
.Must(BeAValidDate).WithMessage("Invalid date");
RuleFor(x => x.StartTime)
.NotEmpty().WithMessage("Start time is required!")
.Must(BeAValidTime).WithMessage("Invalid Start time");
RuleFor(x => x.EndTime)
.NotEmpty().WithMessage("End time is required!")
.Must(BeAValidTime).WithMessage("Invalid End time");
RuleFor(x => x.Title).NotEmpty().WithMessage("A title is required!");
}
private bool BeAValidDate(string value)
{
DateTime date;
return DateTime.TryParse(value, out date);
}
private bool BeAValidTime(string value)
{
DateTimeOffset offset;
return DateTimeOffset.TryParse(value, out offset);
}
}
今、私はまた、検証EndDateTime> StartDateTime(組み合わせる日付+時刻のプロパティ)を追加したいのですが、それについて移動する方法がわからない:ここでバリデータは今のところです。
編集: 明確にするために、私は何とか終了日+終了時間/開始日+のStartTimeすなわちDateTime.Parse(src.StartDate + "" + src.StartTime)を組み合わせ、その後、StartDateTime対EndDateTimeを検証する必要があります - どのように行います私がする?
同じクライアント側を行うことは可能ですか? – SMC
これはFluentValitationでは無効です。これは正しい答えです:http://stackoverflow.com/a/20546097/59119 – Natrium