Aspnet MVC X Zaman Önce

Asp.net MVC ile projemizde x zaman önce yazıldı yapımı ve kullanımı göstereceğim.

Asp.net MVC projemize gelip yeni bir klasör oluştuyoruz. İsmini Helper koyuyorum. Ve altında Helper adında bir class oluştuyorum. Ve X Zaman Önce metotumu buraya tanımlıyorum.

Helper.cs

public static class Helper
{
    public static string XZaman(this DateTime date)
    {
        //Bugünden gelen tarihinin farkını alıyorum
        var timeSpan = DateTime.Now - date;
        //60 saniyeden küçükse 
        if (timeSpan <= TimeSpan.FromSeconds(60))
        return string.Format("{0} saniye önce", timeSpan.Seconds);
        //60 dakikadan küçükse
        else if (timeSpan <= TimeSpan.FromMinutes(60))
        return timeSpan.Minutes > 1 ? string.Format("{0} dakika önce", timeSpan.Minutes) : "yaklaşık bir dakika önce";
        //24 saatten küçükse
        else if(timeSpan <= TimeSpan.FromHours(24))
        return timeSpan.Hours > 1 ? String.Format("{0} saat önce", timeSpan.Hours) : "yaklaşık bir saat önce";
        //30 günden küçükse
        else if(timeSpan <= TimeSpan.FromDays(30))
        return timeSpan.Days > 1 ? String.Format("{0} gün önce", timeSpan.Days) : "dün";
        //365 günden küçükse
        else if(timeSpan <= TimeSpan.FromDays(365))
        return timeSpan.Days > 30 ? String.Format("{0} ay önce", timeSpan.Days / 30) : "yaklaşık bir ay önce";
        //Yıl 
        return timeSpan.Days > 365 ? String.Format("{0} yıl önce", timeSpan.Days / 365) : "yaklaşık bir yıl önce";
    }

}

Kullanıcağımız sınıfımızı ve metotdumuzu yapmış olduk. Dikkat ediceğimiz noktalara gelirsek.

XZaman Metotumuz extension metotdur instance alınmadan tarih tipindeki bir nesneye "nokta" konuldukdan sonra bu metodumuz kullanabileceğimiz anlamına gelmektedir.(Aşağıda kullanımı mevcut).

Helper classımızı ayrı tanımladık ki bu gibi metotlara ihtiyaçımız olursa bu classımızı kullanalım diye.. Buradaki tanımladığımız metotları kullanmak içinde Helper classımızı kullandığımız yere dahil etmemiz gerekecektir.

Örnek olarak Index.cshtml içerisine> @using ProjeAdı.Helpers; Kullanımına geçersek view mizi açalım ve içerisine kodlarımızı yazalım.

//Helper classımızı dahil ettik
@using [ProjeAdı].Helper;
@{
    //Örnek Zamanımız
    DateTime zaman = new DateTime(2017, 5, 28, 15, 57, 31);
}
//ve XZaman Metodumuzu kullandık
@zaman.XZaman();
//çıktımız : yaklaşık bir dakika önce 

Bildiğim kadarıyla bir şeyler yazmaya çalıştım inşallah birilerinin faydalanması dileğiyle..