public static IHtmlString CustomSubmit(this HtmlHelper <PizzaViewModel> htmlHelper, PizzaViewModel vm, string nameValue)
        {
            //< div class="form-group">
            //    <div class="col-md-offset-2 col-md-10">
            //        <input type = "submit" value="Créer" class="btn btn-default" />
            //    </div>
            //</div>
            var outerDiv = new TagBuilder("div");

            outerDiv.AddCssClass("form-group");
            var innerDiv = new TagBuilder("div");

            outerDiv.AddCssClass("col-md-offset-2 col-md-10");
            var input = new TagBuilder("input");

            input.AddCssClass("btn btn-default");
            input.MergeAttribute("type", "submit");
            input.MergeAttribute("value", nameValue);

            StringBuilder htmlBuilder = new StringBuilder();

            htmlBuilder.Append(outerDiv.ToString(TagRenderMode.StartTag));
            htmlBuilder.Append(innerDiv.ToString(TagRenderMode.StartTag));
            htmlBuilder.Append(input.ToString(TagRenderMode.Normal));
            htmlBuilder.Append(innerDiv.ToString(TagRenderMode.EndTag));
            htmlBuilder.Append(outerDiv.ToString(TagRenderMode.EndTag));
            outerDiv.InnerHtml = htmlBuilder.ToString();
            var html = outerDiv.ToString(TagRenderMode.Normal);

            return(MvcHtmlString.Create(html));
        }
Beispiel #2
0
        private bool ValidateVM(PizzaViewModel vm)
        {
            bool result = true;

            return(result);
        }
Beispiel #3
0
        public ActionResult Create(PizzaViewModel vm)
        {
            try
            {
                // cf prochain tp
                // ModelState.IsValid : ok système
                if (ModelState.IsValid && ValidateVM(vm))
                {
                    vm.Pates = FakeDb.Instance.PatesDisponible.Select(
                        x => new SelectListItem {
                        Text = x.Nom, Value = x.Id.ToString()
                    })
                               .ToList();

                    vm.Ingredients = FakeDb.Instance.IngredientsDisponible.Select(
                        x => new SelectListItem {
                        Text = x.Nom, Value = x.Id.ToString()
                    })
                                     .ToList();


                    Pizza pizza = vm.Pizza;

                    pizza.Pate = FakeDb.Instance.PatesDisponible.SingleOrDefault(x => x.Id == vm.IdPate);

                    pizza.Ingredients = FakeDb.Instance.IngredientsDisponible.Where(
                        x => vm.IdsIngredients.Contains(x.Id))
                                        .ToList();

                    // pizza requise
                    if (pizza.Pate == null)
                    {
                        ModelState.AddModelError("Pizza.Pate", "Le choix de la pate est requis.");
                        return(View(vm));
                    }
                    // entre 2 et 5 ingredients
                    //if (pizza.Ingredients.Count() > 5 | pizza.Ingredients.Count() < 2)
                    //{
                    //    ModelState.AddModelError("Pizza.Ingredients", "Choisir entre 2 et 5 ingrédients.");
                    //    return View(vm);
                    //}
                    // nom pizza unique
                    //if (FakeDb.Instance.Pizzas.Any(x => x.Nom == pizza.Nom))
                    //{
                    //    ModelState.AddModelError("Pizza.Nom", "Ce nom de pizza existe déjà.");
                    //    return View(vm);
                    //}
                    // liste d'ingrédient unique
                    if (FakeDb.Instance.Pizzas.Any(x => x.Ingredients.SequenceEqual(pizza.Ingredients)))
                    {
                        ModelState.AddModelError("Pizza.Ingredients", "Une pizza possède déjà cette recette.");
                        return(View(vm));
                    }


                    // cpu
                    pizza.Id = FakeDb.Instance.Pizzas.Count == 0 ? 1 : FakeDb.Instance.Pizzas.Max(x => x.Id) + 1;
                    // variable : ram

                    FakeDb.Instance.Pizzas.Add(pizza);

                    return(RedirectToAction("Index"));
                }
                else
                {
                    // propre : exception, mais exception spécifique.
                    // idem que create
                    vm.Pates = FakeDb.Instance.PatesDisponible.Select(
                        x => new SelectListItem {
                        Text = x.Nom, Value = x.Id.ToString()
                    })
                               .ToList();

                    vm.Ingredients = FakeDb.Instance.IngredientsDisponible.Select(
                        x => new SelectListItem {
                        Text = x.Nom, Value = x.Id.ToString()
                    })
                                     .ToList();

                    return(View(vm));
                }
            }
            catch
            {
                // idem que create
                vm.Pates = FakeDb.Instance.PatesDisponible.Select(
                    x => new SelectListItem {
                    Text = x.Nom, Value = x.Id.ToString()
                })
                           .ToList();

                vm.Ingredients = FakeDb.Instance.IngredientsDisponible.Select(
                    x => new SelectListItem {
                    Text = x.Nom, Value = x.Id.ToString()
                })
                                 .ToList();

                return(View(vm));
            }
        }
Beispiel #4
0
        public IActionResult CreatePizza()
        {
            PizzaViewModel pizzaViewModel = new PizzaViewModel();

            return(View(pizzaViewModel));
        }
        // GET: Pizza/Create
        public ActionResult Create()
        {
            PizzaViewModel vm = new PizzaViewModel();

            return(View(vm));
        }
Beispiel #6
0
 public IActionResult Create(PizzaViewModel pizzaViewModel)
 {
     return(View());
 }
 public IActionResult Add(PizzaViewModel pizza)
 {
     _pizzaService.Save(pizza);
     return(StatusCode(StatusCodes.Status201Created, "Your Pizza was added."));
 }
Beispiel #8
0
        public ActionResult Create(PizzaViewModel vm)
        {
            try
            {
                Pizza pizza = vm.Pizza;

                if (ModelState.IsValid && ValidateVM(vm))
                {
                    var isValidOrnot = true;
                    var nomPizza     = FakeDb.Instance.Pizzas.FirstOrDefault(x => x.Nom == vm.Pizza.Nom);


                    if (nomPizza != null)
                    {
                        isValidOrnot = false;


                        //renvoi liste et pate dispo
                        ModelState.AddModelError("Pizza.Nom", "Nom de pizza en double");
                    }

                    pizza.Pate = FakeDb.Instance.PatesDisponible.FirstOrDefault(x => x.Id == vm.IdPate);
                    if (vm.Pates.Equals("select"))
                    {
                        isValidOrnot = false;
                        //renvoi liste et pate dispo
                        ModelState.AddModelError("IdsIngredients", "veuillez selectionner entre 2 et 5 ingredients");
                    }
                    pizza.Ingredients = FakeDb.Instance.IngredientsDisponible.Where(
                        x => vm.IdsIngredients.Contains(x.Id))
                                        .ToList();
                    if (pizza.Ingredients.Count < 2 || pizza.Ingredients.Count > 5)
                    {
                        isValidOrnot = false;

                        vm.Pates = FakeDb.Instance.PatesDisponible.Select(
                            x => new SelectListItem {
                            Text = x.Nom, Value = x.Id.ToString()
                        }).ToList();

                        vm.Ingredients = FakeDb.Instance.IngredientsDisponible.Select(
                            x => new SelectListItem {
                            Text = x.Nom, Value = x.Id.ToString()
                        }).ToList();

                        //renvoi liste et pate dispo
                        ModelState.AddModelError("IdsIngredients", "veuillez selectionner entre 2 et 5 ingredients");
                    }

                    // Insuffisant
                    //pizza.Id = FakeDb.Instance.Pizzas.Count + 1;
                    if (isValidOrnot)
                    {
                        pizza.Id = FakeDb.Instance.Pizzas.Count == 0 ? 1 : FakeDb.Instance.Pizzas.Max(x => x.Id) + 1;

                        FakeDb.Instance.Pizzas.Add(pizza);

                        return(RedirectToAction("Index"));
                    }
                    else
                    {
                        vm.Pates = FakeDb.Instance.PatesDisponible.Select(
                            x => new SelectListItem {
                            Text = x.Nom, Value = x.Id.ToString()
                        })
                                   .ToList();

                        vm.Ingredients = FakeDb.Instance.IngredientsDisponible.Select(
                            x => new SelectListItem {
                            Text = x.Nom, Value = x.Id.ToString()
                        })
                                         .ToList();

                        return(View(vm));
                    }
                }
                else
                {
                    vm.Pates = FakeDb.Instance.PatesDisponible.Select(
                        x => new SelectListItem {
                        Text = x.Nom, Value = x.Id.ToString()
                    })
                               .ToList();

                    vm.Ingredients = FakeDb.Instance.IngredientsDisponible.Select(
                        x => new SelectListItem {
                        Text = x.Nom, Value = x.Id.ToString()
                    })
                                     .ToList();

                    return(View(vm));
                }
            }
            catch
            {
                vm.Pates = FakeDb.Instance.PatesDisponible.Select(
                    x => new SelectListItem {
                    Text = x.Nom, Value = x.Id.ToString()
                })
                           .ToList();

                vm.Ingredients = FakeDb.Instance.IngredientsDisponible.Select(
                    x => new SelectListItem {
                    Text = x.Nom, Value = x.Id.ToString()
                })
                                 .ToList();

                return(View(vm));
            }
        }
Beispiel #9
0
        public async Task <IActionResult> Get()
        {
            // All non-completed orders
            var orders = await _context.Orders
                         .Where(x => x.IsActive)
                         .Select(x => new
            {
                x.Id,
                x.Pizzas,
                x.Sodas,
                x.TotalPrice
            }).ToListAsync();

            var viewActiveOrders = new List <ResponseViewModel>();

            double totalPrice = 0;

            foreach (var order in orders)
            {
                var viewActiveOrderModel = new ResponseViewModel();
                foreach (var pizza in order.Pizzas)
                {
                    var viewPizza = new PizzaViewModel();

                    foreach (var ingredient in pizza.PizzaIngredients)
                    {
                        var viewIngredient = new IngredientViewModel();
                        viewIngredient.Name = ingredient.Name;
                        viewPizza.PizzaIngredients.Add(viewIngredient);
                    }

                    foreach (var extraIngredient in pizza.ExtraIngredients)
                    {
                        var viewExtraIngredient = new ExtraIngredientViewModel();
                        viewExtraIngredient.MenuNumber = extraIngredient.MenuNumber;
                        viewExtraIngredient.Name       = extraIngredient.Name;
                        viewExtraIngredient.Price      = extraIngredient.Price;
                        viewPizza.ExtraIngredients.Add(viewExtraIngredient);
                    }

                    viewPizza.PizzaId    = pizza.Id;
                    viewPizza.MenuNumber = pizza.MenuNumber;
                    viewPizza.Name       = pizza.Name;
                    viewPizza.Price      = pizza.Price;
                    totalPrice          += pizza.Price;
                    viewActiveOrderModel.Pizzas.Add(viewPizza);
                }
                foreach (var soda in order.Sodas)
                {
                    var viewSoda = new SodaViewModel();
                    viewSoda.MenuNumber = soda.MenuNumber;
                    viewSoda.Name       = soda.Name;
                    viewSoda.Price      = soda.Price;
                    totalPrice         += soda.Price;
                    viewActiveOrderModel.Sodas.Add(viewSoda);
                }
                viewActiveOrderModel.OrderId    = order.Id;
                viewActiveOrderModel.TotalPrice = totalPrice;
                viewActiveOrders.Add(viewActiveOrderModel);
                totalPrice = 0;
            }

            return(Ok(viewActiveOrders));
        }
Beispiel #10
0
        public PizzaView()
        {
            this.InitializeComponent();

            Model = new PizzaViewModel();
        }
Beispiel #11
0
        public IActionResult Create()
        {
            var pizza = new PizzaViewModel();

            return(View(pizza));
        }
 private PizzaViewModel populatePVM(PizzaViewModel pvm)
 {
     pvm.Pates       = PateFakeDb.Instance.GetAll();
     pvm.Ingredients = IngredientFakeDb.Instance.GetAll();
     return(pvm);
 }
Beispiel #13
0
        public IActionResult MakeNewPizza(string id, string orderid, PizzaViewModel Pizza)
        {
            if (ModelState.IsValid)
            {
                User    _user;
                Order   _order;
                decimal Price = 0;

                _user = Repo.UserRepo.GetFullUserByName(id);

                if (orderid == null)
                {
                    _order = new Order();
                }
                else
                {
                    _order = Repo.OrderRepo.GetOrderById(long.Parse(orderid));
                    Price  = _order.Price;
                }

                ViewBag.OrderId  = _order.EntityId;
                ViewBag.Username = _user.Name;

                APizzaModel _pizza = new APizzaModel();

                _pizza.Toppings = new List <Topping>();
                _pizza.Crust    = Repo.CrustRepo.ReadOneCrust(Pizza.CrustName);
                _pizza.Size     = Repo.SizeRepo.ReadOneSize(Pizza.SizeName);

                Price += _pizza.Crust.price;
                Price += _pizza.Size.price;
                foreach (var topping in Pizza.ToppingsNames)
                {
                    var _topping = Repo.ToppingRepo.ReadOneTopping(topping);
                    _pizza.Toppings.Add(_topping);
                    //   Price+=_topping.price;
                }

                _order.Price = Price;
                _order.Store = _user.ChosenStore;
                _order.Pizzas.Add(_pizza);
                _user.Orders.Add(_order);
                ViewBag.OrderPrice = Price;

                Repo.Save();
                var Order = new OrderViewModel();

                if (orderid == null)
                {
                    Order.Pizzas = _order.Pizzas;
                }
                else
                {
                    var zaList      = Repo.OrderRepo.GetOrdersByID(long.Parse(orderid)).Pizzas;
                    var tempOrder   = new List <APizzaModel>();
                    var toppinglist = new List <Topping>();
                    foreach (var za in zaList)
                    {
                        tempOrder.Add(Repo.OrderRepo.GetPizza(long.Parse(orderid), za.EntityId));
                    }
                    Order.Pizzas = tempOrder;
                }
                return(View("OrderList", Order));
            }
            else
            {
                Pizza.DisplayCrusts   = Repo.CrustRepo.ReadCrust();
                Pizza.DisplaySizes    = Repo.SizeRepo.ReadSize();
                Pizza.DisplayToppings = Repo.ToppingRepo.ReadToppings();
                return(View("AddPizza", Pizza));
            }
        }
Beispiel #14
0
        public IActionResult PlaceOrder(PizzaViewModel pizzaVM) //model binding
        {
            if (ModelState.IsValid)
            {
                int        cr  = 1;
                int        si  = 1;
                List <int> top = new List <int>();

                ///convert selections to id's
                switch (pizzaVM.SelectedCrust)
                {
                case "normal":
                    cr = 1;
                    break;

                case "stuffed":
                    cr = 2;
                    break;

                case "deepdish":
                    cr = 3;
                    break;

                default:
                    break;
                }

                switch (pizzaVM.SelectedSize)
                {
                case "small":
                    si = 1;
                    break;

                case "medium":
                    si = 2;
                    break;

                case "large":
                    si = 3;
                    break;

                default:
                    break;
                }

                foreach (var t in pizzaVM.SelectedToppings2)
                {
                    switch (t)
                    {
                    case "cheese":
                        top.Add(1);
                        break;

                    case "pepperoni":
                        top.Add(2);
                        break;

                    case "peppers":
                        top.Add(3);
                        break;

                    case "ham":
                        top.Add(4);
                        break;

                    case "onions":
                        top.Add(5);
                        break;

                    case "sausage":
                        top.Add(6);
                        break;
                    }
                }
                ///

                //adding pizza and pizzatopping to repo
                var db = new Repository();
                db.CreatePizza(cr, si, "Custom Pizza");
                int key = db.GetLasestPizzaId();
                foreach (var i in top)
                {
                    db.CreatePizzaTopping(key, i);
                }

                return(Redirect("/pizza/get"));
                //return Redirect("/user/index"); // http 300-series status
            }

            return(View("Order", pizzaVM));
        }
Beispiel #15
0
        public ActionResult Edit(PizzaViewModel vm)
        {
            try
            {
                vm.Pates = FakeDb.Instance.PatesDisponible.Select(
                    x => new SelectListItem {
                    Text = x.Nom, Value = x.Id.ToString()
                })
                           .ToList();
                vm.Ingredients = FakeDb.Instance.IngredientsDisponible.Select(
                    x => new SelectListItem {
                    Text = x.Nom, Value = x.Id.ToString()
                })
                                 .ToList();

                if (ModelState.IsValid)
                {
                    Pizza pizza = vm.Pizza;

                    pizza.Pate = FakeDb.Instance.PatesDisponible.FirstOrDefault(x => x.Id == vm.IdPate);

                    pizza.Ingredients = FakeDb.Instance.IngredientsDisponible.Where(
                        x => vm.IdsIngredients.Contains(x.Id))
                                        .ToList();

                    // Insuffisant
                    //pizza.Id = FakeDb.Instance.Pizzas.Count + 1;



                    Pizza checkPizza = FakeDb.Instance.Pizzas.FirstOrDefault(x => x.Nom == vm.Pizza.Nom);

                    int memeIngredients = FakeDb.Instance.Pizzas.Where(x => x.Ingredients.Count() == pizza.Ingredients.Count() && !x.Ingredients.Except(pizza.Ingredients).Any()).ToList().Count();


                    if (memeIngredients > 0)
                    {
                        ModelState.AddModelError("", "Cette pizza existe déjà");
                    }
                    else if (checkPizza != null)
                    {
                        ModelState.AddModelError("", "Ce nom est déjà prit");
                    }
                    else if (pizza.Pate == null)
                    {
                        ModelState.AddModelError("", "Le paramètre Pate est obligatoire");
                    }
                    else if (pizza.Ingredients.Count() < 2)
                    {
                        ModelState.AddModelError("", "La pizza doit contenir au moins 2 ingrédients");
                    }
                    else if (pizza.Ingredients.Count() > 5)
                    {
                        ModelState.AddModelError("", "La pizza doit contenir au maximum 5 ingrédients");
                    }
                    else
                    {
                        pizza.Id = FakeDb.Instance.Pizzas.Count == 0 ? 1 : FakeDb.Instance.Pizzas.Max(x => x.Id) + 1;

                        FakeDb.Instance.Pizzas.Add(pizza);

                        return(RedirectToAction("Index"));
                    }
                    return(View(vm));
                }
            }
            catch
            {
                ModelState.AddModelError("", "Erreur de compile");
            }
            return(View(vm));
        }
 public PizzaViewModel Post([FromBody] PizzaViewModel pizza)
 {
     return(_repository.CreatePizza(pizza));
 }