İçeriğe geç

Fluent Validation ile Data Kontrol

Orm(object relational mapping) kullandığımız projelerde entity bazlı validasyon işlemlerine mutlaka ihtiyaç duyarız ve bunun için .net platformunda yapılar bulunmasının yanında harici yapılarda vardır. Fluentvalidation bunlardan birisidir.
Basit bir uygulama üzerinden bu data kontrol yapısını inceleyebiliriz. Öncelikle Ogrenci isminde bir nesne oluşturalım.

public class Ogrenci
{
    public int ID { get; set; }
    public string Ad { get; set; }
    public string Soayad { get; set; }
    public string Email { get; set; }
    public int Yas { get; set; }

	public Ogrenci()
	{

	}
}

Şimdi bu nesneyi kontrol etme işlemini gerçekleştirecek olan aşağıdaki gibi bir sınıf hazırlamamız gerekecek.

public class OgrenciFluentvalidation: AbstractValidator<Ogrenci>
{
	public OgrenciFluentvalidation()
	{
        RuleFor(x => x.Ad).NotEmpty().WithMessage("Ad alanı boş bırakılamaz!");
        RuleFor(x => x.Soayad).NotEmpty().WithMessage("Soyad alanı boş bırakılamaz!");
        RuleFor(x => x.Email).EmailAddress().WithMessage("Geçerli bir mail adresi giriniz!");
	}
}

Burada Ad ve Soyad alanının boş bırakılmaması için uyarı yerleştirdik ve mail adresinin geçerli formatta girişini sağlamak için önlem almış olduk. Şimdi bunu test etmek için gerekli kod bloğunu yazalım.

    protected void Page_Load(object sender, EventArgs e)
    {
        Ogrenci ogr = new Ogrenci()
        {
            ID = 20,
            Ad = "",
            Soayad = null,
            Yas = 25,
            Email = "123@mail.com"
        };

        OgrenciFluentvalidation resultErr = new OgrenciFluentvalidation();
        var Err = resultErr.Validate(ogr);

        foreach (var Item in Err.Errors)
            Response.Write("Alan Adı: " + Item.PropertyName + ", Hata : " + Item.ErrorMessage + "</br>");
    }

Daha detaylı açıklamalar için şuradaki adresi ziyaret edebilirsiniz.

Tarih:Entity Framework

İlk Yorumu Siz Yapın

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.