Ejemplo n.º 1
0
        public void CustomerOrder()
        {
            orders = new List <Porder>();

            //Iterate base on pizza count
            for (int i = 1; i <= numPizza; i++)
            {
                if (OrderHandler.validateCurrentCost(currentCost))
                {
                    Console.WriteLine("Choose from the List of Pizzas: ");
                    PizzaView.DisplayPizzas(pizzas);

                    do  //this code is a repetitive code. create a method for it
                    {
                        Console.WriteLine();
                        index = base.GetValidatedOption(pizzas.Count);
                    } while (index == -1);

                    Console.WriteLine();

                    //Get the pizza from the list
                    Pizza pizza = pizzas[index - 1];

                    Console.WriteLine("You chose this Pizza from the menu");
                    PizzaView.DisplayPizza(pizza);
                    Console.WriteLine();


                    Console.WriteLine("Choose from the List of Pizza sizes below");
                    Console.WriteLine();

                    string[] pizzaSizes = PizzaHandler.pizzaSize;
                    PizzaView.DisplaySize(pizzaSizes);

                    do
                    {
                        Console.WriteLine();
                        index = base.GetValidatedOption(pizzaSizes.Length);
                    } while (index == -1);

                    string pizzaSize = pizzaSizes[index - 1];  //Size of the pizza

                    Console.WriteLine();
                    Console.WriteLine($"You chose [{pizzaSizes[index - 1]}] from the list of sizes");
                    Console.WriteLine();


                    Console.WriteLine("Choose from the List of Pizza Crust below");
                    Console.WriteLine();
                    string[] pizzaCrusts = PizzaHandler.pizzaCrust;
                    PizzaView.DisplayCrust(pizzaCrusts);

                    do
                    {
                        Console.WriteLine();
                        index = base.GetValidatedOption(pizzaCrusts.Length);
                    } while (index == -1);


                    string pizzaCrust = pizzaCrusts[index - 1];

                    Console.WriteLine();
                    Console.WriteLine($"You chose [{pizzaCrust[index - 1]}] from the list of Crust");
                    Console.WriteLine();


                    chosenToppings = new List <Toppings>();

                    Console.WriteLine("Choose from the Toppings on the List:");
                    List <Toppings> toppings = ToppingsHandler.GetToppings(pizza);



                    ToppingView.DisplayToppings(toppings);
                    Console.WriteLine();


                    List <Toppings> defaultToppings = ToppingsHandler.GetDefaultToppings(pizza);
                    ToppingView.DisplayDefaultToppings(defaultToppings);
                    Console.WriteLine();


                    //Check for Toppings Count
                    int  numToppings, maxToppings = 0;
                    bool toppingCountValid;
                    do
                    {
                        numToppings       = base.ValidateIntegerOption(base.GetInput("How many Toppings would you like on yout Pizza ? "));
                        toppingCountValid = ToppingsHandler.validateToppingsCount(ref maxToppings, numToppings);

                        if (toppingCountValid == false)
                        {
                            Console.WriteLine("You can't have more than Five(5) toppings on your pizza");
                        }
                    } while (numPizza > maxPizza);


                    for (int t = 1; t <= numToppings; t++)
                    {
                        do
                        {
                            index = base.GetValidatedOption(toppings.Count);
                        } while (index == -1);

                        chosenToppings.Add(toppings[index - 1]);
                    }


                    //Re assign chosen topping when the default toppings has been added
                    chosenToppings = ToppingsHandler.AddDefaultToChosenToppings(chosenToppings, defaultToppings);

                    //Add Default to Chosen

                    ToppingView.DisplayToppings(chosenToppings);
                    double toppingsCost = ToppingsHandler.TotalToppingsCost(chosenToppings);
                    ToppingView.DisplayToppingsTotalCost(toppingsCost);



                    //problem is in the PizzaHandler class
                    Pizza pizzaOrder = PizzaHandler.GetPizzaPrice(pizza.PType, pizzaSize, pizzaCrust);

                    Console.WriteLine("Pizza Order: " + pizzaOrder);

                    //



                    currentCost = OrderHandler.GetOrderCost(Convert.ToDouble(pizzaOrder.PPrice), toppingsCost);
                    OrderView.DisplayOrderCost(currentCost);

                    totalCost += currentCost;

                    orders.Add(new Porder
                    {
                        PDate       = DateTime.Now.ToString("M/d/yyyy"),
                        PTime       = DateTime.Now.ToShortTimeString(),
                        OrderCost   = Convert.ToString(currentCost),
                        PizzaId     = pizzaOrder.PizzaId,
                        PUserId     = user.PUserId,
                        CLocationId = location.LocationId
                    });
                }
                else
                {
                    Console.WriteLine("You cant order more than 5000 pizza cost");
                    displayView(user);
                }
            }

            OrderView.DisplayTotalOrderCost(totalCost);
            Console.WriteLine();

            string orderOption;

            do
            {
                orderOption = base.GetInput("Are you sure about your Order ?. Type in YES to accept or NO to decline ");

                if (orderOption.ToLower().Equals("yes"))
                {
                    bool inserted = OrderHandler.InsertOrders(orders);

                    if (inserted == true)
                    {
                        Console.WriteLine(" Yay!  Your Order has been placed  ");
                        Console.WriteLine("Thank you for choosing PizaBox");

                        Environment.Exit(0);
                    }
                    else
                    {
                        Console.WriteLine(" Something went wrong with your order: Pls try re-ordering ");
                        displayView(user);
                    }
                }
                else if (orderOption.ToLower().Equals("no"))
                {
                    Console.WriteLine("Thank you for choosing PizaBox");
                    Environment.Exit(0);
                }
                else
                {
                    Console.WriteLine("Incorrect Option, pls try again.");
                    Console.WriteLine();
                }
            } while (orderOption.ToLower().Equals("yes") || orderOption.ToLower().Equals("no"));
        }
        public void displayView(Puser user)
        {
            this.user = user;

            Console.WriteLine("===================== ADMINISTRATOR ==================");
            Console.WriteLine();
            Console.WriteLine($"Choose from the options below from 1 to {menuAdmin.Length}");
            Console.WriteLine();

            int listCount = 1;
            int option;


            for (int i = 0; i < menuAdmin.Length - 1; listCount++, i++)
            {
                Console.WriteLine($" ({listCount}) \t {menuAdmin[i]}");
            }

            Console.WriteLine();

            do
            {
                option = base.GetValidatedOption(menuAdmin.Length - 1);
            } while (option == -1);

            //Load Locations from domainusing
            List <Plocation> locations = LocationHandler.GetLocationData();

            switch (option - 1)
            {
            case (int)menuAdminConst.Stores:
            {
                LocationView.DisplayLocationsOptions(locations);

                break;
            }

            case (int)menuAdminConst.Pizzas:
            {
                LocationView.DisplayLocationsOptions(locations);

                do
                {
                    option = base.GetValidatedOption(locations.Count - 1);
                } while (option == -1);

                //Load Pizzas from domain
                List <Pizza> pizzas = PizzaHandler.GetPizzasFromLocation(locations[option - 1]);

                //Display pizzas
                PizzaView.DisplayPizzas(pizzas);

                break;
            }

            case (int)menuAdminConst.Order:

            {
                List <Porder> orders = OrderHandler.GetOrders();
                OrderView.DisplayOrders(orders);

                break;
            }

            case (int)menuAdminConst.Customer:

            {
                List <Customer> customers = CustomerHandler.GetCustomers();
                CustomerDetailsView.DisplayCustomerDetails(customers);

                break;
            }

            case (int)menuAdminConst.Sales:

            {
                break;
            }

            case (int)menuAdminConst.Users:
            {
                List <Puser> users = UserHandler.GetUsers();
                UserDetailsView.DisplayUserDetails(users);

                break;
            }
            }

            string option1;

            do
            {
                option1 = base.GetInput("Type in YES to continue or NO to quit. ");

                if (option1.ToLower().Equals("yes"))
                {
                    displayView(user);
                }
                else if (option1.ToLower().Equals("no"))
                {
                    Console.WriteLine("Thank you for choosing PizaBox");
                    Environment.Exit(0);
                }
                else
                {
                    Console.WriteLine("Incorrect Option, pls try again.");
                    Console.WriteLine();
                }
            } while (option1.ToLower().Equals("yes") || option1.ToLower().Equals("no"));

            Console.WriteLine();
        }