示例#1
0
 static void OrderOrHistory(User u)
 {
     Console.WriteLine("--- Hello Returning User -- type 1 to view your order history or 0 to start a new order");
     int.TryParse(System.Console.ReadLine(), out int input);
     if (input == 1)
     {
         _sql.ReadUsersPizzas(_sql.UsersOrders(u));
     }
     else
     {
         var ThisOrder = new Order();
         ThisOrder.UserEntityId = u.EntityId;
         PrintAllStoresEF();
         Console.WriteLine("--- Type Store Name to select a store ---");
         u.SelectedStore = _sql.SelectStore();
         u.SelectedStore.CreateOrder();
         u.Orders = u.SelectedStore.Orders;
         u.Orders.Add(u.SelectedStore.Orders.Last());
         ThisOrder = u.SelectedStore.Orders.Last();
         ThisOrder.DisplayPizzaOptions();
         ThisOrder.AddPizza();
         _sql.Update();
         _sql.ReviewOrder(ThisOrder);
         u.SelectedStore.Revenue = u.SelectedStore.Revenue + ThisOrder.Total;
         _sql.Update();
         Console.WriteLine(u);
         ViewStoreRev(u.SelectedStore);
     }
 }
示例#2
0
        static void UserView(User user)
        {
            System.Console.Clear();
            var stay = true;

            do
            {
                System.Console.WriteLine("would you like to view your history (h), place an order (o), or logout (x)?");
                var select = System.Console.ReadLine();
                if (select.Equals("h"))
                {
                    System.Console.Clear();
                    foreach (var o in user.Orders)
                    {
                        System.Console.WriteLine(o.ToString());
                    }
                }
                else if (select.Equals("o"))
                {
                    System.Console.WriteLine("Please select a store by typing its name :");
                    PrintAllStoresWithEF();

                    var SelectedStore = _sql.SelectStore();
                    List <APizzaModel> SelectedPizzas = _client.SelectPizzas();

                    System.Console.Clear();

                    SelectedStore.CreateOrder(SelectedPizzas);
                    user.Orders.Add(SelectedStore.Orders.Last());

                    _sql.SaveOrder(user.Orders.Last());
                    _sql.Update();

                    System.Console.WriteLine("Here are all the pizzas you ordered::");
                    System.Console.WriteLine(user.Orders.Last().ToString());
                }
                else if (select.Equals("x"))
                {
                    stay = false;
                    System.Console.WriteLine("Have a nice day!");
                }
                else
                {
                    System.Console.WriteLine("No valid selection made, please try again");
                }
            } while (stay);
        }
示例#3
0
        static void UserView(User user)
        {
            PrintAllStores();

            user.SelectedStore = _sql.SelectStore();
            user.SelectedStore.CreateOrder();
            user.Orders.Add(user.SelectedStore.Orders.Last());
            SelectPizza(user);


            _sql.Update();

            System.Console.WriteLine("Order Successful!");
            NewOrder(user);
        }
示例#4
0
        static void UserView()
        {
            Console.WriteLine("Please type 1 for Store, 2 for User");
            string InitialChoice = Console.ReadLine();

            if (InitialChoice == "1")
            {
                Console.WriteLine("Please enter the name of your store for orders (One, Two, Three)");
                Store StoreChoice = _sql.SelectStore();
                PrintOrdersOfStore(StoreChoice);
                Environment.Exit(0);
            }

            else if (InitialChoice == "2")
            {
                Console.WriteLine("Are you a returning (1) or new (2) user?");
                string NewOrReturning = Console.ReadLine();

                if (NewOrReturning == "1")
                {
                    Console.WriteLine("Welcome back!  Please enter your user name.");
                    string ReturningName = Console.ReadLine();
                    Console.WriteLine($"Hi {ReturningName}! Would you like to view your previous orders (1) or create a new one (2)");
                    string Choice2 = Console.ReadLine();
                    if (Choice2 == "1")
                    {
                        User user = _sql.ReadUser(ReturningName);
                        PrintOrdersOfUser(user);
                    }
                    else if (Choice2 == "2")
                    {
                        User user = _sql.ReadUser(ReturningName);
                        Console.WriteLine("Please type the name of the store you wish to worder from.");
                        PrintAllStoresWithEF();
                        user.SelectedStore = _sql.SelectStore();
                        user.SelectedStore.CreateOrder();
                        user.Orders.Add(user.SelectedStore.Orders.Last());
                        string UserChoice = null;
                        do
                        {
                            _client.PrintPizzaChoice();
                            string AddPizza = Console.ReadLine();
                            switch (AddPizza)
                            {
                            case "1":
                                user.Orders.Last().MakeMeatPizza();
                                break;

                            case "2":
                                user.Orders.Last().MakeVeggiePizza();
                                break;

                            case "3":
                                user.Orders.Last().MakeHawaiianPizza();
                                break;

                            case "4":
                                UserChoice = AddPizza;
                                break;
                            }
                        }while (UserChoice != "4");

                        string UserChoice2 = null;
                        do
                        {
                            Console.WriteLine("Here is your order and order total.  To order, enter 4.  To delete a pizza, enter 1 (MeaPizza), 2 (VeggiePizza), 3 (Hawaiian Pizza)");
                            System.Console.WriteLine(user);
                            System.Console.WriteLine(user.SelectedStore.Orders.Last());
                            string RemovePizza = Console.ReadLine();
                            switch (RemovePizza)
                            {
                            case "1":
                                user.Orders.Last().RemoveMeatPizza();
                                break;

                            case "2":
                                user.Orders.Last().RemoveVeggiePizza();
                                break;

                            case "3":
                                user.Orders.Last().RemoveHawaiianPizza();
                                break;

                            case "4":
                                UserChoice2 = RemovePizza;
                                break;
                            }
                        }while (UserChoice2 != "4");
                        System.Console.WriteLine(user);
                        System.Console.WriteLine(user.SelectedStore.Orders.Last());
                        _sql.Update();
                    }
                }
                else if (NewOrReturning == "2")
                {
                    Console.WriteLine("Welcome!  Please enter a username");
                    string name = Console.ReadLine();
                    User   user = _sql.CreateUser(name);
                    Console.WriteLine("Please type the name of the store you wish to worder from");
                    PrintAllStoresWithEF();
                    user.SelectedStore = _sql.SelectStore();
                    user.SelectedStore.CreateOrder();

                    user.Orders.Add(user.SelectedStore.Orders.Last());

                    string UserChoice = null;
                    do
                    {
                        _client.PrintPizzaChoice();
                        string AddPizza = Console.ReadLine();
                        switch (AddPizza)
                        {
                        case "1":
                            user.Orders.Last().MakeMeatPizza();
                            break;

                        case "2":
                            user.Orders.Last().MakeVeggiePizza();
                            break;

                        case "3":
                            user.Orders.Last().MakeHawaiianPizza();
                            break;

                        case "4":
                            UserChoice = AddPizza;
                            break;
                        }
                    }while (UserChoice != "4");

                    string UserChoice2 = null;
                    do
                    {
                        Console.WriteLine("Here is your order and order total.  To order, enter 4.  To delete a pizza, enter 1 (MeaPizza), 2 (VeggiePizza), 3 (Hawaiian Pizza)");
                        System.Console.WriteLine(user);
                        System.Console.WriteLine(user.SelectedStore.Orders.Last());
                        string RemovePizza = Console.ReadLine();
                        switch (RemovePizza)
                        {
                        case "1":
                            user.Orders.Last().RemoveMeatPizza();
                            break;

                        case "2":
                            user.Orders.Last().RemoveVeggiePizza();
                            break;

                        case "3":
                            user.Orders.Last().RemoveHawaiianPizza();
                            break;

                        case "4":
                            UserChoice2 = RemovePizza;
                            break;
                        }
                    }while (UserChoice2 != "4");
                    System.Console.WriteLine(user);
                    System.Console.WriteLine(user.SelectedStore.Orders.Last());
                    _sql.Update();
                }
            }
        }
示例#5
0
        static void UserView()
        {
            PrintAllUsersWithEF();
            Console.WriteLine("Please input the name of the user you want.");
            User user;

            try {
                user = _sql.SelectUser();
            }
            catch {
                Console.WriteLine("That's not a valid user, fool!");
                return;
            }

            PrintAllStoresWithEF();
            Console.WriteLine("Please input the name of the store you want.");
            try {
                user.SelectedStore = _sql.SelectStore();
            }
            catch {
                Console.WriteLine("That's not a valid store, fool!");
                return;
            }

            Console.WriteLine("Please select the type of pizza you'd like to order.");
            Console.WriteLine("Basic: $19.99");
            Console.WriteLine("Meat Lovers: $29.99");
            Console.WriteLine("Vegetarian: $24.99");
            Console.WriteLine("Custom: $9.99 before customization");
            Console.WriteLine("Or, type 'userorder' to view your own order history.");
            Console.WriteLine("Or, type 'storeorder' to view the store's order history.");

            string input = Console.ReadLine().ToUpper();

            switch (input)
            {
            case "BASIC":
                Console.WriteLine("You have selected the basic pizza.");
                user.SelectedStore.CreateOrder();
                user.Orders.Add(user.SelectedStore.Orders.Last());
                user.Orders.Last().MakePizza("NORMAL", "MEDIUM", "cheese", "pepperoni", "", "", "");
                break;

            case "MEAT LOVERS":
                Console.WriteLine("You have selected the meat lovers pizza.");
                user.SelectedStore.CreateOrder();
                user.Orders.Add(user.SelectedStore.Orders.Last());
                user.Orders.Last().MakePizza("NORMAL", "MEDIUM", "cheese", "pepperoni", "bacon", "ham", "");
                break;

            case "VEGETARIAN":
                Console.WriteLine("You have selected the vegetarian pizza.");
                user.SelectedStore.CreateOrder();
                user.Orders.Add(user.SelectedStore.Orders.Last());
                user.Orders.Last().MakePizza("NORMAL", "MEDIUM", "cheese", "pineapple", "onion", "", "");
                break;

            case "CUSTOM":
                Console.WriteLine("You have decided to build your own pizza.");
                Console.WriteLine("Please select a size.");
                Console.WriteLine("Normal: No price change");
                Console.WriteLine("Large: +$5.00");
                Console.WriteLine("Small: -$5.00");
                string size = Console.ReadLine().ToUpper();
                switch (size)
                {
                case "NORMAL":
                    Console.WriteLine("You have selected a normal pizza.");
                    break;

                case "LARGE":
                    Console.WriteLine("You have selected a large pizza.");
                    break;

                case "SMALL":
                    Console.WriteLine("You have selected a small pizza.");
                    break;

                default:
                    Console.WriteLine("That's not a valid size, fool!");
                    return;
                }
                Console.WriteLine("Please select a crust.");
                Console.WriteLine("Normal: No price change");
                Console.WriteLine("Cheese: +$5.00");
                string crust = Console.ReadLine().ToUpper();
                switch (crust)
                {
                case "NORMAL":
                    Console.WriteLine("You have selected a normal crust.");
                    break;

                case "CHEESE":
                    Console.WriteLine("You have selected a cheese crust.");
                    break;

                default:
                    Console.WriteLine("That's not a valid crust, fool!");
                    return;
                }
                bool exit         = false;
                bool cheese       = false;
                bool pepperoni    = false;
                bool bacon        = false;
                bool ham          = false;
                bool pineapple    = false;
                bool onion        = false;
                int  toppingCount = 0;

                string input2;
                while (exit == false)
                {
                    Console.WriteLine("Please select two to five toppings (+$5.00 each).");
                    if (cheese == false)
                    {
                        Console.WriteLine("Extra Cheese: Off");
                    }
                    else
                    {
                        Console.WriteLine("Extra Cheese: On");
                    }
                    if (pepperoni == false)
                    {
                        Console.WriteLine("Pepperoni: Off");
                    }
                    else
                    {
                        Console.WriteLine("Pepperoni: On");
                    }
                    if (bacon == false)
                    {
                        Console.WriteLine("Bacon: Off");
                    }
                    else
                    {
                        Console.WriteLine("Bacon: On");
                    }
                    if (ham == false)
                    {
                        Console.WriteLine("Ham: Off");
                    }
                    else
                    {
                        Console.WriteLine("Ham: On");
                    }
                    if (pineapple == false)
                    {
                        Console.WriteLine("Pineapple: Off");
                    }
                    else
                    {
                        Console.WriteLine("Pineapple: On");
                    }
                    if (onion == false)
                    {
                        Console.WriteLine("Onion: Off");
                    }
                    else
                    {
                        Console.WriteLine("Onion: On");
                    }
                    if (toppingCount >= 2 && toppingCount <= 5)
                    {
                        Console.WriteLine("Type 'done' to finish.");
                    }
                    input2 = Console.ReadLine().ToUpper();
                    switch (input2)
                    {
                    case "CHEESE":
                        if (cheese == true)
                        {
                            cheese = false;
                            toppingCount--;
                        }
                        else
                        {
                            cheese = true;
                            toppingCount++;
                        }
                        break;

                    case "EXTRA CHEESE":
                        if (cheese == true)
                        {
                            cheese = false;
                            toppingCount--;
                        }
                        else
                        {
                            cheese = true;
                            toppingCount++;
                        }
                        break;

                    case "PEPPERONI":
                        if (pepperoni == true)
                        {
                            pepperoni = false;
                            toppingCount--;
                        }
                        else
                        {
                            pepperoni = true;
                            toppingCount++;
                        }
                        break;

                    case "BACON":
                        if (bacon == true)
                        {
                            bacon = false;
                            toppingCount--;
                        }
                        else
                        {
                            bacon = true;
                            toppingCount++;
                        }
                        break;

                    case "HAM":
                        if (ham == true)
                        {
                            ham = false;
                            toppingCount--;
                        }
                        else
                        {
                            ham = true;
                            toppingCount++;
                        }
                        break;

                    case "PINEAPPLE":
                        if (pineapple == true)
                        {
                            pineapple = false;
                            toppingCount--;
                        }
                        else
                        {
                            pineapple = true;
                            toppingCount++;
                        }
                        break;

                    case "ONION":
                        if (onion == true)
                        {
                            onion = false;
                            toppingCount--;
                        }
                        else
                        {
                            onion = true;
                            toppingCount++;
                        }
                        break;

                    case "DONE":
                        if (toppingCount >= 2 && toppingCount <= 5)
                        {
                            exit = true;
                        }
                        else
                        {
                            Console.WriteLine("You must have between two and five toppings.");
                        }
                        break;

                    default:
                        Console.WriteLine("That's not a valid topping, fool!");
                        break;
                    }
                }
                user.SelectedStore.CreateOrder();
                user.Orders.Add(user.SelectedStore.Orders.Last());
                string[] toppings = new string[5];
                toppings[0] = "";
                toppings[1] = "";
                toppings[2] = "";
                toppings[3] = "";
                toppings[4] = "";
                for (int i = 0; i < 5; i++)
                {
                    if (cheese == true)
                    {
                        toppings[i] = "extra_cheese";
                        cheese      = false;
                        continue;
                    }
                    if (pepperoni == true)
                    {
                        toppings[i] = "pepperoni";
                        pepperoni   = false;
                        continue;
                    }
                    if (bacon == true)
                    {
                        toppings[i] = "bacon";
                        bacon       = false;
                        continue;
                    }
                    if (ham == true)
                    {
                        toppings[i] = "ham";
                        ham         = false;
                        continue;
                    }
                    if (pineapple == true)
                    {
                        toppings[i] = "pineapple";
                        pineapple   = false;
                        continue;
                    }
                    if (onion == true)
                    {
                        toppings[i] = "onion";
                        onion       = false;
                        continue;
                    }
                }
                user.Orders.Last().MakePizza(crust, size, toppings[0], toppings[1], toppings[2], toppings[3], toppings[4]);
                break;

            case "USERORDER":
                Console.WriteLine("You have decided to view your own order history.");
                IEnumerable <Order>       myOrders = _sql.ReadAllOrders();
                IEnumerable <APizzaModel> myPizzas = _sql.ReadAllPizzas();
                List <Order> listOfOrders          = new List <Order>();
                foreach (var o in myOrders)
                {
                    if (o.UserEntityId == user.EntityId)
                    {
                        listOfOrders.Add(o);
                    }
                }
                foreach (var p in myPizzas)
                {
                    foreach (var o in listOfOrders)
                    {
                        if (p.OrderEntityId == o.EntityId)
                        {
                            Console.WriteLine(p + ", Price: " + o.Price);
                        }
                    }
                }
                break;

            case "STOREORDER":
                Console.WriteLine("You have decided to view the store's order history.");
                myOrders     = _sql.ReadAllOrders();
                myPizzas     = _sql.ReadAllPizzas();
                listOfOrders = new List <Order>();
                foreach (var o in myOrders)
                {
                    if (o.StoreEntityId1 == user.SelectedStore.EntityId)
                    {
                        listOfOrders.Add(o);
                    }
                }
                foreach (var p in myPizzas)
                {
                    foreach (var o in listOfOrders)
                    {
                        if (p.OrderEntityId == o.EntityId)
                        {
                            Console.WriteLine(p + ", Price: " + o.Price);
                        }
                    }
                }
                break;

            default:
                Console.WriteLine("That's not a valid option, fool!");
                return;
            }

            _sql.Update();
        }
示例#6
0
        private static void CreateAndProcessOrder(User user) // TODO: Thinking about having the list of parts be sent as params
        {
            user.SelectedStore.CreateOrder();
            user.Orders.Add(user.SelectedStore.Orders.Last()); // last because the above line just created a new order

            List <Crust>   availableCrusts   = _sql.GetCrusts().ToList();
            List <Size>    availableSizes    = _sql.GetSizes().ToList();
            List <Topping> availableToppings = _sql.GetToppings().ToList();

            Order  currentOrder = user.Orders.Last();
            string submitInput  = "";

            do
            {
                PrintMessage("Available Pizzas:");
                PrintAvailablePizzaTypes();
                PrintMessage("Enter a type of pizza to add to your order.");
                string typeInput = Console.ReadLine();
                PrintMessage("Enter the size for your pizza");
                string sizeInput = Console.ReadLine();

                switch (typeInput)
                {
                case "Meat":
                    currentOrder.MakeMeatPizza(availableCrusts, availableSizes, availableToppings);
                    break;

                case "Pineapple":
                    currentOrder.MakePineapplePizza(availableCrusts, availableSizes, availableToppings);
                    break;

                case "Gumbo":
                    currentOrder.MakeGumboPizza(availableCrusts, availableSizes, availableToppings);
                    break;

                default:
                    break;
                }
                currentOrder.ChangeLastPizzaSize(sizeInput, availableSizes); // Reason for no if - editing a pizza to small and then back to medium
                //currentOrder.PrintPriceOfLastPizza();
                PrintTallyWithMsg("Current Order Total", currentOrder);

                do
                {
                    System.Console.WriteLine("What would you like to do?");
                    System.Console.WriteLine("a) Add another pizza to your order");
                    if (!currentOrder.CheckIfZeroPizzas())
                    {
                        System.Console.WriteLine("b) Edit the pizzas in your order");
                        System.Console.WriteLine("c) Checkout");
                    }
                    else
                    {
                        System.Console.WriteLine("d) Cancel Order");
                    }

                    submitInput = Console.ReadLine();

                    // Edit Pizza Area
                    if (submitInput == "b")
                    {
                        currentOrder.PrintPizzas();
                        System.Console.WriteLine("Which pizza would you like to edit? (use numbers, starting from 1)");
                        int.TryParse(Console.ReadLine(), out int pizzaNumInput);
                        pizzaNumInput = pizzaNumInput - 1;

                        var selectedPizza = currentOrder.Pizzas.ElementAtOrDefault(pizzaNumInput);

                        PrintMessage("What do you want to do with this pizza?");
                        DisplayOptions(new string[] {
                            "a) Change the type of crust",
                            "b) Change the size",
                            "c) Remove it"
                        });

                        string editOptionInput = Console.ReadLine();

                        switch (editOptionInput)
                        {
                        case "a":     // TODO: Use one common method for this two cases
                            PrintMessage(selectedPizza.ToString() + "'s Current Crust: " + selectedPizza.Crust.ToString());
                            PrintMessage("What do you want to change the Crust to");
                            foreach (var c in availableCrusts)
                            {
                                System.Console.WriteLine(c);
                            }
                            string crustChoiceInput = Console.ReadLine();
                            currentOrder.ChangePizzaCrust(pizzaNumInput, crustChoiceInput, availableCrusts);
                            PrintTallyWithMsg("Updated Order Tally", currentOrder);
                            break;

                        case "b":
                            PrintMessage(selectedPizza.ToString() + "'s Current Size: " + selectedPizza.Size.ToString());
                            PrintMessage("What do you want to change the Size to?");
                            foreach (var c in availableSizes)
                            {
                                System.Console.WriteLine(c);
                            }
                            string sizeChoiceInput = Console.ReadLine();
                            currentOrder.ChangePizzaSize(pizzaNumInput, sizeChoiceInput, availableSizes);
                            PrintTallyWithMsg("Updated Order Tally", currentOrder);
                            break;

                        case "c":
                            currentOrder.RemovePizza(pizzaNumInput);
                            PrintTallyWithMsg("Updated Order Tally", currentOrder);
                            break;

                        default:
                            break;
                        }
                    }
                }   while (submitInput == "b");
            } while (submitInput == "a");

            if (submitInput == "c")
            {
                // Display final tally and associated message
                PrintTallyWithMsg("Final Order Total", currentOrder);

                _sql.Update(user.SelectedStore);
                //System.Console.WriteLine(user);

                do
                {
                    System.Console.WriteLine("Thank you for your order. Will that be all?");
                    DisplayOptions(new string[] {
                        "a) Yes",
                        "b) Show order history",
                        "c) Make another order"
                    });
                    submitInput = Console.ReadLine();

                    switch (submitInput)
                    {
                    case "a":
                        PrintMessage($"Thank you for choosing {user.SelectedStore}. Come again!");
                        break;

                    case "b":
                        _sql.DisplayUserOrderHistory(user);
                        break;

                    case "c":
                        CreateAndProcessOrder(user);
                        break;

                    default:
                        break;
                    }
                } while (submitInput == "b");
            }

            if (submitInput == "d")
            {
                user.SelectedStore.DeleteOrder(currentOrder);
                PrintMessage("Thank you. Come again!");
            }
        }
示例#7
0
        static void UserView()
        {
            Console.WriteLine("\n\nWelcome to PizzaCo!");
            if (u == null)
            {
                UserEntry();
            }
            Console.WriteLine("\nHow may we help you today?");
            int i = NewOrModify();

            if (i == 1)    //Create a new order
            {
                Console.WriteLine("\nWhat store would you like to order from?");
                PrintAllStores();
                u.SelectedStore = _sql.SelectStore();
                u.SelectedStore.CreateOrder();
                Order o = u.SelectedStore.Orders.Last();
                u.Orders.Add(o);
                Payment(u, o);
            }
            else if (i == 2 | i == 3)    //Modify/delete an old order
            {
                Console.WriteLine("\nWhat store was the order placed at?");
                PrintAllStores();
                u.SelectedStore = _sql.SelectStore();
                if (i == 3)    //modify
                {
                    Console.WriteLine("\nWhat order would you like to modify? \n(Orders are displayed oldest to most recent) \n(You cannot modify orders that have already been delivered; they are not on the list)");
                    u.PrintUndeliveredOrders();
                    Order o = u.SelectOrder();
                    o = u.SelectedStore.ModifyOrder(o, u);
                    Payment(u, o);
                }
                else    //delete
                {
                    Console.WriteLine("\nWhat order would you like to cancel? \n(Orders are displayed oldest to most recent) \n(You cannot cancel orders that have already been delivered; they are not on the list)");
                    u.PrintUndeliveredOrders();
                    Order o = u.SelectOrder();
                    u.SelectedStore.DeleteOrder(o, u);
                }
            }
            else if (i == 4)    //Display all previous orders
            {
                u.PrintOrders();
                Console.WriteLine("\nWould you also like to make, modify, or cancel an order? (Y/N)");
                string s = Console.ReadLine().Trim().ToLower();
                if (s == "y" | s == "yes")
                {
                    UserView();
                }
                while (s != "y" & s != "yes")
                {
                    if (s == "y" | s == "yes")
                    {
                        UserView();
                    }
                    else if (s == "n" | s == "no")
                    {
                        break;
                    }
                    else
                    {
                        Console.WriteLine("\nSorry, we didn't catch that. Could you please repeat it?");
                        s = Console.ReadLine().Trim().ToLower();
                    }
                }
            }
            else    //If the input was invalid
            {
                Console.WriteLine("\nSorry, we didn't catch that. Could you please repeat it?");
                NewOrModify();
            }

            //Save this operation to the database and ask if the user wants another operation
            _sql.Update(u.SelectedStore, u);
            Console.WriteLine("\nThank you for using PizzaCo Online! \nIs there more you would like to do on our site? (Y/N)");
            if (YesNo())
            {
                UserView();
            }
            else
            {
                Console.WriteLine("\nHave a lovely day!");
            }
        }
示例#8
0
        static bool UserMakeOrder(User user)
        {
            bool addpizzas = true;

            if (user.OrderTimeLimitCheck())
            {
                Console.WriteLine("Cannot place an order within two hours of another order");
                return(false);
            }

            PrintAllStoresEF();
            var store = _sql.SelectStore();

            if (store == null)
            {
                Console.WriteLine("That store does not exist");
                return(false);
            }
            if (!(user.SelectedStore == null))
            {
                if (!user.SelectedStore.Equals(store))
                {
                    if (user.StoreChangeCheck())
                    {
                        Console.WriteLine("Cannot changes stores within 24 hours of another order");
                        return(false);
                    }
                }
            }

            user.SelectedStore = store;
            user.SelectedStore.CreateOrder();
            user.Orders.Add(user.SelectedStore.Orders.Last());
            while (addpizzas)
            {
                Console.WriteLine("Choose action (number)");
                Console.WriteLine(""
                                  + "1. Order Summary\n"
                                  + "2. Order CustomPizza\n"
                                  + "3. Order MeatPizza\n"
                                  + "4. Order BuffaloChickenPizza\n"
                                  + "5. Order HawaiianPizza\n"
                                  + "6. Order PillyCheeseSteakPizza\n"
                                  + "7. Order GlutenFreePizza\n"
                                  + "8. Remove a Pizza\n"
                                  + "9. Finish Order");
                int.TryParse(Console.ReadLine(), out int input);
                switch (input)
                {
                case 1:
                    Console.WriteLine(user.OrderSummmary());
                    break;

                case 2:
                    user.Orders.Last().MakeCustomPizza();
                    user.Orders.Last().LimitCheck();
                    break;

                case 3:
                    user.Orders.Last().MakeMeatPizza();
                    user.Orders.Last().LimitCheck();
                    break;

                case 4:
                    user.Orders.Last().MakeBuffaloChickenPizza();
                    user.Orders.Last().LimitCheck();
                    break;

                case 5:
                    user.Orders.Last().MakeHawaiianPizza();
                    user.Orders.Last().LimitCheck();
                    break;

                case 6:
                    user.Orders.Last().MakePillyCheeseSteakPizza();
                    user.Orders.Last().LimitCheck();
                    break;

                case 7:
                    user.Orders.Last().MakeGlutenFreePizza();
                    user.Orders.Last().LimitCheck();
                    break;

                case 8:
                    Console.WriteLine(user.OrderSummmary());
                    Console.WriteLine("Choose a pizza to remove (number)");
                    int.TryParse(Console.ReadLine(), out int pizzaSelect);
                    user.Orders.Last().DeletePizza(pizzaSelect - 1);
                    break;

                case 9:
                    addpizzas = false;
                    break;

                default:
                    Console.WriteLine("Unknown input try again");
                    break;
                }
            }

            user.Orders.Last().OrderDate = DateTime.Now;
            _sql.Update();

            Console.WriteLine(user.OrderSummmary());
            return(true);
        }