示例#1
0
        // entrypoint to user story
        public static void UserOptions(User user)
        {
            var exit = false;

            do
            {
                System.Console.WriteLine("\nHow can we help you today?");
                System.Console.WriteLine("1: Order pizzas");
                System.Console.WriteLine("2: View your order history");
                System.Console.WriteLine("3: Exit");

                int selection;
                System.Console.Write("Your selection: ");
                int.TryParse(Console.ReadLine(), out selection);

                switch (selection)
                {
                // order pizzas option
                case 1:
                    var storeList = _db.ReadAllStores();     // read stores from database

                    System.Console.WriteLine("\nWhich store would you like to order from?");
                    for (int i = 0; i < storeList.Count; i++)
                    {
                        System.Console.WriteLine($"{i + 1}: {storeList[i].Name}");
                    }

                    int storeId;
                    System.Console.Write("Your selection: ");
                    int.TryParse(Console.ReadLine(), out storeId);

                    var store = storeList[storeId - 1];     // select a store to order from
                    store.Toppings.AddRange(_db.ReadToppings());
                    store.Sizes.AddRange(_db.ReadSizes());
                    store.Crusts.AddRange(_db.ReadCrusts());
                    store.PizzaPresets.AddRange(Starter.GeneratePresets());

                    System.Console.WriteLine($"\nOrdering from {store.Name}");

                    var order = store.CreateOrder(user);     // create an order
                    System.Console.WriteLine();

                    try
                    {
                        OrderPizzas(order, user, store);     // begin ordering pizzas
                    }
                    catch (Exception ex)
                    {
                        System.Console.WriteLine(ex.Message);
                    }
                    break;

                // view order history for user
                case 2:
                    ViewOrderHistory(user);
                    break;

                // exit application
                case 3:
                    exit = true;
                    System.Console.WriteLine("\nThank you, have a good day!");
                    break;
                }
            } while (!exit);
        }