Bu yazıda .NET Core uygulamalarımızda Fluent Validaton'ı nasıl kullanacağımızı anlatmaya çalışacağım.
Fluent Validation; Neredeyse tüm .NET versiyonlarında desteklenen, validation kütüphanesi.
Öncelikle NuGet Package Manager kullanarak ya da aşağıdaki kodu Package Manager Console'da çalıştırarak projemize FluentValidation paketini ekliyoruz.
Install-Package FluentValidation
Şimdi de Person adında bir class oluşturarak içerisine Name, Email ve PhoneNumber alanlarını ekliyorum. Bu class'ı FluentValidation ile kontrol ederek doğruluğunu teyit edeceğiz.
namespace FluentValidationBlog | |
{ | |
public class Person | |
{ | |
public string Name { get; set; } | |
public string Email { get; set; } | |
public string PhoneNumber { get; set; } | |
} | |
} |
PersonValidator class'ını oluşturarak FluentValidaton paketiyle birlikte gelen AbstractValidator class'ından türetiyorum.
using FluentValidation; | |
namespace FluentValidationBlog | |
{ | |
public class PersonValidator : AbstractValidator<Person> | |
{ | |
} | |
} |
Şimdi de kurallarımı belirleyeceğim. Class üzerinde 3 alan var Name, Email ve PhoneNumber.
İsim boş olmamalı ve 3 karakterden az olmamalı kuralımız var.
Email için email formatında olmalı ve boş olmamalı.
Telefon numarası da 5 ile başlayan 10 haneli cep telefonu olmalı.
using FluentValidation; | |
namespace FluentValidationBlog | |
{ | |
public class PersonValidator : AbstractValidator<Person> | |
{ | |
public PersonValidator() | |
{ | |
RuleFor(person => person.Name) | |
.NotNull().WithMessage("İsim boş olamaz") | |
.MinimumLength(3).WithMessage("İsim en az 3 karakterden oluşmalı"); | |
RuleFor(person => person.Email) | |
.NotNull().WithMessage("Email boş olamaz") | |
.EmailAddress().WithMessage("Geçerli bir email adresi girin"); | |
RuleFor(person => person.PhoneNumber) | |
.NotNull().WithMessage("Telefon numarası boş olamaz") | |
.Length(10).WithMessage("Telefon numarası 10 karakterden oluşmalı") | |
.Must(phone => phone.StartsWith("5")).WithMessage("Telefon numarası 5 ile başlamalı"); | |
} | |
} | |
} |
Şimdi de kodumu çalıştırıyorum.
Görüldüğü gibi validaton istediğim gibi çalıştı.
0 yorum:
Yorum Gönder