Fluent Validation Tarih Kısıtlaması
Fluent Validation’da içinde bulunulan yıl ve aydan önceki tarihlerin girilmesi halinde hata vermesini sağlayan kısıtlamayı nasıl yazacağınızı anlatacağım. Bunu yapmanın birçok yolu var ben bir tanesini göstereceğim.
RuleFor(x => x)
.Must((x, context) =>
{
var monthLimit = DateTime.Now.Month;
var yearLimit = DateTime.Now.Year;
if (ExpireMonth < monthLimit && x.ExpireYear <= yearLimit)
return false;
return true;
}).WithMessage("Payment.ExpireDate.GreaterThanNow");
monthLimit ve yearLimit olarak iki değişken tanımlıyoruz. Bunlar içinde bulunulan yılın ay ve yıl bilgilerini tutuyor. Daha sonra validasyonu oluşturduğumuz classın propertyleri ile bu değişkenlerimizi kıyaslıyoruz.
Eğer girilen ay ve yıl şuanki ay ve yıldan küçük ise Message içinde yazılan hata veriliyor. Eğer büyük ise işlemlere devam ediliyor.