কম্পিউটার টিউটোরিয়াল

C#-এ FluentValidation ব্যবহার করে DateOfBirth ভ্যালিডেশন (কারেন্ট ইয়ার অতিক্রম করলে)

নির্দিষ্ট প্রপার্টির জন্য ভ্যালিডেশন রুল নির্দিষ্ট করতে 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) কল করে যা বুলিয়ান রিটার্ন করে। এখানে চেক করা হয়েছে ডেট অফ বर्थ কারেন্ট ইয়ার से বড় নয় এবং ১২০ বছরের বেশি পুরনো নয়।

  1. জাভাস্ক্রিপ্টে বর্তমান তারিখ ও সময় পাওয়ার উপায়

  2. জাভাস্ক্রিপ্টে বর্তমান বছর পাওয়ার উপায়

  3. জাভাস্ক্রিপ্ট ব্যবহার করে বেসিক ফর্ম ভ্যালিডেশন করার উপায়

  4. এন্ড্রয়েডে Year API ক্লাস ব্যবহার করে বর্তমান বছর পাওয়ার পদ্ধতি