Exemple #1
0
        //add new item  //lazy implementation
        static void AddItem()
        {
            try
            {
                Console.WriteLine("Item Types:  cburger | vburger | colddrink | hotdrink");
                Console.Write("Item Type:");
                String   type = Console.ReadLine();
                MenuItem item;

                switch (type)
                {
                case "cburger":
                    item = new ChickenBurger();
                    break;

                case "vburger":
                    item = new VegBurger();
                    break;

                case "colddrink":
                    item = new ColdDrink();
                    break;

                case "hotdrink":
                    item = new HotDrink();
                    break;

                default:
                    Console.WriteLine("Wrong type of item!");
                    return;
                }

                foreach (var prop in item.GetType().GetProperties())
                {
                    if (prop.Name.Equals("Id"))
                    {
                        continue;
                    }
                    Console.Write("{0}=", prop.Name);
                    prop.SetValue(item, ParseAnyObject(Console.ReadLine()));
                }

                restaurant.AddItem(item);
            }
            catch (Exception e)
            {
                Console.WriteLine("Wrong input!");
                Console.WriteLine(e.ToString());
            }
        }