Clear        


                
                    using System.Globalization;

namespace _11_AbstractClasses._1_ProductAndStore
{
    public class ProductAndStoreDemo
    {
        public static void Calistir()
        {
            //RecordBase record = new RecordBase(); // record objesi new'lenemez çünkü tipi olan RecordBase bir abstract (soyut) class'tır

            Product product = new Product() // product (ürün) new'lenebilir çünkü Product bir concrete (somut) class'tır
            {
                Id = 1, // RecordBase class'ından miras alınan özellik
                Guid = Guid.NewGuid().ToString(), // RecordBase class'ından miras alınan özellik,
                                                  // oluşturulacak guid örneği: b49336bf-1048-460d-84ca-7166c9f151b6,
                                                  // uygulama her çalıştığında tekil yeni bir guid oluşacaktır

                Name = "ASUS ROG", // Product class'ı özelliği
                UnitPrice = 2500, // Product class'ı özelliği
                StockAmount = 25 // Product class'ı özelliği
            };

            Console.WriteLine($"Product:\n" +
                $"Id: {product.Id}\n" +
                $"Guid: {product.Guid}\n" +
                $"Name: {product.Name}\n" +
                $"Stock Amount: {product.StockAmount}\n" +
                $"Unit Price: {product.UnitPrice.ToString("C2", new CultureInfo("en-US"))}"); // C2: en-US (A.B.D. İngilizce) olarak 2 ondalık haneli currency (para birimi) formatı

            Console.WriteLine();



            Store store = new Store() // store (mağaza) new'lenebilir çünkü Store bir concrete (somut) class'tır
            {
                Id = 1, // RecordBase class'ından miras alınan özellik
                Guid = Guid.NewGuid().ToString(), // RecordBase class'ından miras alınan özellik
                Name = "Best Buy", // Store class'ı özelliği
                Country = "United States", // Store class'ı özelliği
                City = "Phoenix" // Store class'ı özelliği
            };

            Console.WriteLine("Store:\n" +
                "Id: " + store.Id + "\n" +
                "Guid: " + store.Guid + "\n" +
                "Name: " + store.Name + "\n" +
                "Location: " + store.City + " (" + store.Country + ")");
        }
    }
}