Exemplo n.º 1
0
        public IActionResult Menu()
        {
            OrderMenuViewModel orderMenuViewModel = new OrderMenuViewModel()
            {
                Order = _repo.Create((int)TempData.Peek("UserId"), (int)TempData.Peek("StoreId"))
            };

            TempData["OrderId"] = orderMenuViewModel.Order.Id;
            return(View(orderMenuViewModel));
        }
Exemplo n.º 2
0
        public IActionResult Clear()
        {
            _repo.DeletePizzas((int)TempData.Peek("OrderId"));
            ViewData["Status"] = "Pizzas removed from order!";

            OrderMenuViewModel orderMenuViewModel = new OrderMenuViewModel()
            {
                Order  = _repo.Read((int)TempData.Peek("OrderId")),
                Status = (string)ViewData["Status"]
            };

            return(View("Menu", orderMenuViewModel));
        }
Exemplo n.º 3
0
        public ActionResult MakeOrder()
        {
            OrderMenuViewModel menu = this.orderManager.GetOrderMenu();

            ViewBag.AppetizersList  = new SelectList(menu.Appetizers, "Id", "Name", "-- none --");
            ViewBag.MainCoursesList = new SelectList(menu.MainCourses, "Id", "Name", "-- none --");
            ViewBag.DessertsList    = new SelectList(menu.Desserts, "Id", "Name", "-- none --");

            if (this.User.IsInRole(PriviligedClient))
            {
                return(this.View(nameof(OrdersController.MakeOrderPrivileged)));
            }

            return(this.View());
        }
        public OrderMenuViewModel GetOrderMenu()
        {
            SqlDataReader reader = this.ExecuteReader(
                @"SELECT mt.Name AS MealType,
                          m.Id as MealId,
                          m.Name AS MealName
                     FROM Meals AS m
                     JOIN MealTypes AS mt
                       ON m.MealTypeId = mt.Id");

            ICollection <MealDescription> appetizers  = new List <MealDescription>();
            ICollection <MealDescription> mainCourses = new List <MealDescription>();
            ICollection <MealDescription> desserts    = new List <MealDescription>();

            using (reader)
            {
                while (reader.Read())
                {
                    string mealTypeName = reader.GetString(0);
                    int    mealId       = reader.GetInt32(1);
                    string mealName     = reader.GetString(2);

                    MealDescription meal = new MealDescription(mealId, mealName);

                    switch (mealTypeName)
                    {
                    case "Предястие":
                        appetizers.Add(meal);
                        break;

                    case "Основно ястие":
                        mainCourses.Add(meal);
                        break;

                    case "Десерт":
                        desserts.Add(meal);
                        break;

                    default:
                        throw new InvalidOperationException("No such meal type: " + mealTypeName);
                    }
                }
            }

            OrderMenuViewModel menu = new OrderMenuViewModel(appetizers, mainCourses, desserts);

            return(menu);
        }
Exemplo n.º 5
0
        public IActionResult AddCustom(CustomPizzaViewModel customPizzaViewModel)
        {
            if (ModelState.IsValid)
            {
                if (customPizzaViewModel.SelectedToppings.Count < 2 || customPizzaViewModel.SelectedToppings.Count > 5)
                {
                    ViewData["Status"] = "Cannot add pizza; number of toppings must be between 2 and 5";
                }

                else if (_repo.Read((int)TempData.Peek("OrderId")).Pizzas.Count == 50)
                {
                    ViewData["Status"] = "Cannot add pizza; number of pizzas in an order cannot exceed 50.";
                }

                else if (_repo.ReadNewPrice(customPizzaViewModel.Crust, customPizzaViewModel.Size, customPizzaViewModel.SelectedToppings, (int)TempData.Peek("OrderId")) > 250.00m)
                {
                    ViewData["Status"] = "Cannot add pizza; price of the order cannot exceed $250";
                }

                //Create Pizza
                else
                {
                    _repo.CreateCustomPizza(customPizzaViewModel.Crust, customPizzaViewModel.Size, customPizzaViewModel.SelectedToppings, (int)TempData.Peek("OrderId"));
                    ViewData["Status"] = "Added new custom pizza!";
                }

                //Return to menu with new OrderMenu
                OrderMenuViewModel orderMenuViewModel = new OrderMenuViewModel()
                {
                    Order  = _repo.Read((int)TempData.Peek("OrderId")),
                    Status = (string)ViewData["Status"]
                };

                return(View("Menu", orderMenuViewModel));
            }

            customPizzaViewModel.Crusts   = _repo.ReadCrusts();
            customPizzaViewModel.Sizes    = _repo.ReadSizes();
            customPizzaViewModel.Toppings = _repo.ReadToppings();
            return(View("CustomMenu", customPizzaViewModel));
        }
Exemplo n.º 6
0
        public IActionResult AddPreset(PresetPizzaViewModel presetPizzaViewModel)
        {
            if (ModelState.IsValid)
            {
                //Check that the number of pizzas doesn't exceed 50
                if (_repo.Read((int)TempData.Peek("OrderId")).Pizzas.Count == 50)
                {
                    ViewData["Status"] = "Cannot add pizza; number of pizzas in an order cannot exceed 50.";
                }

                //Check that price doesn't exceed $250
                else if (_repo.ReadNewPrice(presetPizzaViewModel.Name, (int)TempData.Peek("OrderId")) > 250.00m)
                {
                    ViewData["Status"] = "Cannot add pizza; price of the order cannot exceed $250";
                }

                //Create Pizza
                else
                {
                    _repo.CreatePresetPizza(presetPizzaViewModel.Name, (int)TempData.Peek("OrderId"));
                    ViewData["Status"] = "Added new preset pizza!";
                }

                //Return to menu with new OrderMenu
                OrderMenuViewModel orderMenuViewModel = new OrderMenuViewModel()
                {
                    Order  = _repo.Read((int)TempData.Peek("OrderId")),
                    Status = (string)ViewData["Status"]
                };

                return(View("Menu", orderMenuViewModel));
            }

            presetPizzaViewModel.PresetPizzas = _repo.ReadPresetPizzas();
            return(View("PresetMenu", presetPizzaViewModel));
        }