using System.ComponentModel;
public static void Main()
_Item.Name = "SilverRing";
while(_Item.StockInHand > 0)
Console.WriteLine("Remaining Stock On Item {0} => {1}", _Item.ItemId, _Item.StockInHand);
Console.WriteLine("Error : {0}", ex.Message);
public class Item : INotifyPropertyChanged
public int ItemId { get; set; }
public string Name { get; set; }
public double Price { get; set; }
private int _StockInHand;
get { return _StockInHand; }
OnPropertyChanged("StockInHand");
public event PropertyChangedEventHandler PropertyChanged;
PropertyChanged += Item_PropertyChanged;
public void OnPropertyChanged(string PropertyName)
if(PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs(PropertyName));
public void Item_PropertyChanged(object sender, PropertyChangedEventArgs e)
Item _Item = (Item)sender;
if(_Item._StockInHand < 5)
Order _Order = new Order();
_Item._StockInHand = _Order.RefillRequest(_Item.ItemId);
public int RefillRequest(int ItemId)
Console.WriteLine("Refill request rised for item {0}", ItemId);