// Context nesnesi örneklenirken başlangıç durumu belirtilir. public VendingMachine() { // Test için makineye örnek ürünler yüklenir. ProductList.Add(new Product { Name = "Çikolata K", ListPrice = 10, Count = 50 }); ProductList.Add(new Product { Name = "Biskuvi Bis", ListPrice = 3.45, Count = 50 }); ProductList.Add(new Product { Name = "Tuzlu mu tuzlu çıtır", ListPrice = 4.50, Count = 35 }); // Makineye ürünleri yükledikten sonra durumunu değiştir State = new InitializeState(); }
public void RequestProduct(string productName, double money) { Console.WriteLine("Ürün siparişi geldi. {0} için atılan para : {1}", productName, money); Product prd = (from p in ProductList where (p.Name == productName && (money >= p.ListPrice && p.Count >= 1)) select p).SingleOrDefault <Product>(); // Eğer talep edilen ürün stokta var ve atılan para yeterli ise if (prd != null) { prd.Count--; // Makinenin durumunu değiştir State = new PreparingState(); } else { State = new WaitingState(); } }