示例#1
0
        // GET: Salades/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            var saladeViewModel = new SaladeViewModel
            {
                Salade = db.Salades.Include(i => i.Composants).First(i => i.ID == id)
            };

            if (saladeViewModel == null)
            {
                return(HttpNotFound());
            }
            var allComposant = db.Composants.ToList();

            saladeViewModel.AllComposant = allComposant.Select(o => new SelectListItem {
                Text = o.Nom, Value = o.ID.ToString()
            });
            Salade salade = db.Salades.Find(id);

            if (salade == null)
            {
                return(HttpNotFound());
            }


            return(View(saladeViewModel));
        }
示例#2
0
        public ActionResult Edit(SaladeViewModel SaladeView)
        {
            if (SaladeView == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }



            if (ModelState.IsValid)
            {
                var Update = db.Salades
                             .Include(i => i.Ingredients).First(i => i.ID == SaladeView.Salade.ID);

                if (TryUpdateModel(Update, "Salades", new string[] { "Nom", "Description", "FabricantID" }))
                {
                    var newIngredients = db.Ingredients.Where(
                        m => SaladeView.SelectedIngredients.Contains(m.Id)).ToList();
                    var updatedIngredients = new HashSet <int>(SaladeView.SelectedIngredients);
                    foreach (Ingredient Ingredient in db.Ingredients)
                    {
                        if (!updatedIngredients.Contains(Ingredient.Id))
                        {
                            Update.Ingredients.Remove(Ingredient);
                        }
                        else
                        {
                            Update.Ingredients.Add(Ingredient);
                        }
                    }

                    db.Entry(Update).State = System.Data.Entity.EntityState.Modified;
                    db.SaveChanges();
                }

                return(RedirectToAction("Index"));
            }
            ViewBag.Fabricant_ID = new SelectList(db.Fabricants, "ID", "Nom", SaladeView.Salade.Fabricant.ID);
            return(View(SaladeView));
        }
示例#3
0
        public ActionResult Edit(SaladeViewModel saladeViewModel)
        {
            if (saladeViewModel == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            if (ModelState.IsValid)
            {
                var saladeToUpdate = db.Salades
                                     .Include(i => i.Composants).First(i => i.ID == saladeViewModel.Salade.ID);

                if (TryUpdateModel(saladeToUpdate, "Salade", new string[] { "Nom", "Description" }))
                {
                    var newComposant = db.Composants.Where(
                        m => saladeViewModel.SelectedComposant.Contains(m.ID)).ToList();

                    var updatedComposant = new HashSet <int>(saladeViewModel.SelectedComposant);
                    foreach (Composant composant in db.Composants)
                    {
                        if (!updatedComposant.Contains(composant.ID))
                        {
                            saladeToUpdate.Composants.Remove(composant);
                        }
                        else
                        {
                            saladeToUpdate.Composants.Add(composant);
                        }
                    }

                    db.Entry(saladeToUpdate).State = System.Data.Entity.EntityState.Modified;
                    db.SaveChanges();
                }

                return(RedirectToAction("Index"));
            }

            return(View(saladeViewModel.Salade));
        }