Clear        


                
                    namespace _25_HasArelationship._2_BankaHesaplari.Bases
{
    /// <summary>
    /// İşlem somut sınıfının miras alacağı soyut sınıf. 
    /// </summary>
    public abstract class IslemBase 
    {
        #region Özellikler
        /// <summary>
        /// Her bir yapılan işlemdeki miktar.
        /// </summary>
        public decimal Miktar { get; } // miktar atamasını constructor üzerinden yapacağımızdan sadece değer okumak için getter oluşturuyoruz

        /// <summary>
        /// İşlemin yapıldığı tarih.
        /// </summary>
        public DateTime Tarihi { get; } // tarih atamasını constructor üzerinden yapacağımızdan sadece değer okumak için getter oluşturuyoruz

        /// <summary>
        /// İşlemin para yatırma mı para çekme mi değeri.
        /// </summary>
        public bool ParaYatirmaMi { get; } // para yatırma mı atamasını constructor üzerinden yapacağımızdan sadece değer okumak için getter oluşturuyoruz

        /// <summary>
        /// Para yatırma veya para çekme değerine göre sadece okunur açıklama.
        /// </summary>
        public string Aciklamasi => ParaYatirmaMi ? "Para yatırma işlemi." : "Para çekme işlemi.";
        #endregion



        #region Constructor
        protected IslemBase(decimal miktar, bool paraYatirmaMi) // class abstract olduğu için constructor'ı protected tanımlıyoruz
        {
            Miktar = miktar;
            ParaYatirmaMi = paraYatirmaMi;
            Tarihi = DateTime.Now; // işlemin oluşturulduğu tarih ve saati tarihe atıyoruz
        }
        #endregion
    }
}