FluentValidation হল একটি .NET লাইব্রেরি যা দৃঢ়ভাবে টাইপ করা বৈধকরণের নিয়ম তৈরি করার জন্য। এটি একটি সাবলীল ইন্টারফেস এবং ল্যাম্বডা এক্সপ্রেশন ব্যবহার করে বৈধতা নিয়ম তৈরি করার জন্য। এটি আপনার ডোমেন কোড পরিষ্কার করতে এবং এটিকে আরও সমন্বিত করতে সাহায্য করে, সেইসাথে আপনাকে বৈধতার যুক্তি খোঁজার জন্য একটি একক জায়গা দেয়
সাবলীল বৈধতা ব্যবহার করার জন্য আমাদের নীচের প্যাকেজটি ইনস্টল করতে হবে
<PackageReference Include="FluentValidation" Version="9.2.2" />
উদাহরণ 1
static class Program { static void Main (string[] args) { List errors = new List(); PersonModel person = new PersonModel(); person.FirstName = ""; person.LastName = "S"; person.AccountBalance = 100; person.DateOfBirth = DateTime.Now.Date; PersonValidator validator = new PersonValidator(); ValidationResult results = validator.Validate(person); if (results.IsValid == false) { 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 { public PersonValidator(){ RuleFor(p => p.FirstName) .Cascade(CascadeMode.StopOnFirstFailure) .NotEmpty().WithMessage("{PropertyName} is Empty") .Length(2, 50).WithMessage("Length ({TotalLength}) of {PropertyName} Invalid") .Must(BeAValidName).WithMessage("{PropertyName} Contains Invalid Characters"); RuleFor(p => p.LastName) .Cascade(CascadeMode.StopOnFirstFailure) .NotEmpty().WithMessage("{PropertyName} is Empty") .Length(2, 50).WithMessage("Length ({TotalLength}) of {PropertyName} Invalid") .Must(BeAValidName).WithMessage("{PropertyName} Contains Invalid Characters"); } protected bool BeAValidName(string name) { name = name.Replace(" ", ""); name = name.Replace("-", ""); return name.All(Char.IsLetter); } }
আউটপুট
First Name is Empty Length (1) of Last Name Invalid