নির্দিষ্ট প্রপার্টির জন্য ভ্যালিডেশন রুল নির্দিষ্ট করতে RuleFor মেথড কল করুন, ল্যাম্বডা এক্সপ্রেশন পাস করে যা প্রপার্টি ইন্ডিকেট করে।
RuleFor(p => p.DateOfBirth)
ভ্যালিডেটর রান করতে ভ্যালিডেটর অবজেক্ট ইনস্ট্যানসিয়েট করুন এবং Validate মেথড কল করুন, অবজেক্ট পাস করে।
ValidationResult results = validator.Validate(person);
Validate মেথড ValidationResult অবজেক্ট রিটার্ন করে। এর দুটি প্রপার্টি:
- IsValid - বুলিয়ান, ভ্যালিডেশন সাফল্য হয়েছে কিনা।
- Errors -
ValidationFailureঅবজেক্টের কালেকশন যাতে ভ্যালিডেশন ফেইলুরের ডিটেইলস থাকে।
উদাহরণ ১
static void Main(string[] args)
{
List<string> errors = new List<string>();
PersonModel person = new PersonModel();
person.FirstName = "TestUser";
person.LastName = "TestUser";
person.AccountBalance = 100;
person.DateOfBirth = DateTime.Now.Date.AddYears(1); // ভবিষ্যতের তারিখ
PersonValidator validator = new PersonValidator();
ValidationResult results = validator.Validate(person);
if (!results.IsValid)
{
foreach (ValidationFailure failure in results.Errors)
errors.Add(failure.ErrorMessage);
}
foreach (var item in errors) Console.WriteLine(item);
Console.ReadLine();
}
public class PersonModel
{
public string FirstName { get; set; }
public string LastName { get; set; }
public decimal AccountBalance { get; set; }
public DateTime DateOfBirth { get; set; }
}
public class PersonValidator : AbstractValidator<PersonModel>
{
public PersonValidator()
{
RuleFor(p => p.DateOfBirth)
.Must(BeAValidAge).WithMessage("Invalid {PropertyName}");
}
protected bool BeAValidAge(DateTime date)
{
int currentYear = DateTime.Now.Year;
int dobYear = date.Year;
if (dobYear <= currentYear && dobYear > (currentYear - 120))
return true;
return false;
}
}
আউটপুট
Invalid Date Of Birth
ব্যাখ্যা: Must মেথড একটি কাস্টম ফাংশন (BeAValidAge) কল করে যা বুলিয়ান রিটার্ন করে। এখানে চেক করা হয়েছে ডেট অফ বर्थ কারেন্ট ইয়ার से বড় নয় এবং ১২০ বছরের বেশি পুরনো নয়।