1 Mayıs 2021 Cumartesi

.NET Core - Fluent Validation kullanımı

Leave a Comment

 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; }
}
}
view raw Person.cs hosted with ❤ by GitHub

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ı.

If You Enjoyed This, Take 5 Seconds To Share It

0 yorum: