예제 #1
0
        private void HydrateSamouraiViewModelLists(SamouraiViewModel vm, Samourai editedSamourai = null)
        {
            // selection des armes non attribuées
            vm.Armes = db.Armes
                       .Where(a => !db.Samourais.Select(s => s.Arme.Id).Contains(a.Id))
                       .Select(a => new SelectListItem {
                Text = a.Nom, Value = a.Id.ToString()
            })
                       .ToList();
            // si un samourai est impliqué (edit), ajout de sa propre arme à la liste
            if (editedSamourai != null && editedSamourai.Arme != null)
            {
                vm.Armes.Add(new SelectListItem {
                    Text = editedSamourai.Arme.Nom, Value = editedSamourai.Arme.Id.ToString()
                });
            }

            // selection des arts martiaux.
            vm.ArtMartials = db.ArtMartials
                             .Select(x => new SelectListItem {
                Text = x.Nom, Value = x.Id.ToString()
            })
                             .ToList();

            if (editedSamourai != null)
            {
                AddPotentialValue(vm.Samourai);
            }
        }
예제 #2
0
        // GET: Samourais/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Samourai          samourai = db.Samourais.Find(id);
            SamouraiViewModel vm       = new SamouraiViewModel();

            vm.Samourai = samourai;
            vm.Armes    = db.Armes.Select(x => new SelectListItem()
            {
                Text = x.Nom, Value = x.Id.ToString()
            }).ToList();
            if (samourai.Arme != null)
            {
                vm.IdArme = samourai.Arme.Id;
            }


            if (samourai == null)
            {
                return(HttpNotFound());
            }
            vm.Armes = db.Armes.Select(x => new SelectListItem()
            {
                Text = x.Nom, Value = x.Id.ToString()
            }).ToList();
            return(View(vm));
        }
예제 #3
0
        // GET: Samourais/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Samourai samourai = db.Samourais.Include(s => s.ArtMartials).FirstOrDefault(s => s.Id == id);

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

            List <SelectListItem> ArmesListItems = getArmesSelectListItems(samourai.Id);
            SamouraisViewModel    vm             = new SamouraisViewModel
            {
                Samourai    = samourai,
                Armes       = ArmesListItems,
                ArtMartials = db.ArtMartials.Select(a => new SelectListItem {
                    Text = a.Nom, Value = a.Id.ToString()
                }).ToList()
            };

            if (samourai.Arme != null)
            {
                vm.IdArme = samourai.Arme.Id;
            }
            if (samourai.ArtMartials != null && samourai.ArtMartials.Count() > 0)
            {
                vm.IdArtMartials = samourai.ArtMartials.Select(a => a.Id).ToList();
            }

            return(View(vm));
        }
예제 #4
0
        public ActionResult Edit(SamouraiVM sVM)
        {
            if (ModelState.IsValid)
            {
                Samourai samourai = db.Samourais.Include(x => x.Arme).Include(x => x.ArtMartials).FirstOrDefault(x => x.Id == sVM.Samourai.Id);
                //samourai.Force = sVM.Samourai.Force;
                //samourai.Nom = sVM.Samourai.Nom;
                samourai.SetObjectProp(sVM.Samourai);
                Samourai SamouraiAvecArme = db.Samourais.Where(x => x.Arme.Id == sVM.ArmeId).FirstOrDefault();
                if (sVM.ArmeId != null)
                {
                    samourai.Arme = db.Armes.Find(sVM.ArmeId);
                }
                else
                {
                    samourai.Arme = null;
                }
                if (sVM.ListeArtMartialsId.Any())
                {
                    samourai.ArtMartials = db.ArtMartials.Where(x => sVM.ListeArtMartialsId.Contains(x.Id)).ToList();
                }

                db.SaveChanges();
                return(RedirectToAction("Index"));
            }
            this.getListeArmesDisposDb(sVM);
            sVM.ListeArtMartials = db.ArtMartials.ToList();
            return(View(sVM));
        }
예제 #5
0
        // GET: Samourais/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            SamouraiVM sVM      = new SamouraiVM();
            Samourai   samourai = db.Samourais.Find(id);

            if (samourai == null)
            {
                return(HttpNotFound());
            }
            else
            {
                this.getListeArmesDisposDb(sVM);
                sVM.ListeArtMartials = db.ArtMartials.ToList();
                sVM.Samourai         = samourai;

                if (samourai.Arme != null)
                {
                    sVM.ArmeId = samourai.Arme.Id;
                    sVM.ListeArmes.Add(db.Armes.Where(x => x.Id == sVM.ArmeId).FirstOrDefault());
                }
                if (samourai.ArtMartials.Any())
                {
                    sVM.ListeArtMartialsId = samourai.ArtMartials.Select(x => x.Id).ToList();
                }

                return(View(sVM));
            }
        }
예제 #6
0
        // GET: Samourais/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Samourai samourai = db.Samourais.Find(id);

            if (samourai == null)
            {
                return(HttpNotFound());
            }
            var svm = new SamouraiViewModel();

            svm.Samourai     = samourai;
            svm.Armes        = db.Armes.Except(db.Samourais.Select(s => s.Arme)).ToList();
            svm.ArtsMartiaux = db.ArtsMartiaux.ToList();
            if (samourai.Arme != null)
            {
                svm.Armes.Add(samourai.Arme);
                svm.IdSelectedArme = samourai.Arme.Id;
            }
            if (samourai.ArtsMartiaux != null)
            {
                svm.IdSelectedArtMartiaux = samourai.ArtsMartiaux.Select(am => am.Id).ToList();
            }
            return(View(svm));
        }
예제 #7
0
        // GET: Samourais/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Samourai samourai = db.Samourais.Find(id);

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

            var armesUsed  = this.getArmesUsed();
            var samouraiVM = new SamouraiVM
            {
                Samourai              = samourai,
                Armes                 = db.Armes.Where(a => !armesUsed.Contains(a.Id)).ToList(),
                ArtMartiaux           = db.ArtMartials.ToList(),
                IdSelectedArtMartiaux = samourai.ArtsMartiaux.Select(ar => ar.Id).ToList()
            };

            if (samourai.Arme != null)
            {
                samouraiVM.IdSelectedArme = samourai.Arme.Id;
                samouraiVM.Armes.Add(samourai.Arme);
            }

            return(View(samouraiVM));
        }
예제 #8
0
        // GET: Samourais/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Samourai samourai = db.Samourais.Include("Arme").Include("ArtsMartiaux").Where(s => s.Id == id).SingleOrDefault();

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

            SamouraiVM vm = new SamouraiVM
            {
                Samourai             = samourai,
                SelectedWeapon       = samourai.Arme?.Id,
                SelectedMartialArts  = samourai.ArtsMartiaux.Select(am => am.Id).ToList(),
                WeaponsListItems     = getAvailableWeapons(samourai.Id),
                MartialArtsListItems = db.ArtMartiaux.Select(am => new SelectListItem {
                    Text = am.Nom, Value = am.Id.ToString()
                }).ToList()
            };

            return(View(vm));
        }
예제 #9
0
        // GET: Samourais/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Samourai samourai = db.Samourais.Find(id);

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

            VmSamourai vm = new VmSamourai();

            vm.samourai = samourai;
            // vm.armes = db.Armes.ToList();
            vm.artMartials = db.ArtMartials.ToList();

            this.getListeArmesDisposDb(vm);

            // vm.armesId = vm.samourai.Arme.Id;

            return(View(vm));
        }
예제 #10
0
        // GET: Samourais/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Samourai samourai = db.Samourais.Find(id);

            if (samourai == null)
            {
                return(HttpNotFound());
            }
            var vm = new SamouraiVM();

            vm.Armes = db.Armes.Select(
                x => new SelectListItem {
                Text = x.Nom, Value = x.Id.ToString()
            })
                       .ToList();

            vm.ArtsMartiaux = db.ArtMartiaux.ToList();

            vm.Samourai = samourai;

            if (samourai.Arme != null)
            {
                // Si le samourai avait une arme, on affecte l'Id de cette arme à notre VIewModel, ansi elle sera préselectionnée dans notre liste d'armes
                vm.IdSelectedArme = samourai.Arme.Id;
            }
            return(View(vm));
        }
예제 #11
0
 public ActionResult Edit(SamouraiVM samouraiVM)
 {
     try
     {
         if (ModelState.IsValid)
         {
             Samourai samourai = db.Samourais.Include("Arme").Include("ArtsMartiaux").Where(s => s.Id == samouraiVM.Samourai.Id).SingleOrDefault();
             if (samourai == null)
             {
                 return(RedirectToAction("Index"));
             }
             samourai.Nom          = samouraiVM.Samourai.Nom;
             samourai.Force        = samouraiVM.Samourai.Force;
             samourai.Arme         = db.Armes.Find(samouraiVM.SelectedWeapon);
             samourai.ArtsMartiaux = db.ArtMartiaux.Where(am => samouraiVM.SelectedMartialArts.Contains(am.Id)).ToList();
             db.SaveChanges();
             return(RedirectToAction("Index"));
         }
         return(View(samouraiVM));
     }
     catch
     {
         return(View(samouraiVM));
     }
 }
예제 #12
0
        // GET: Samourais/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Samourai samourai = db.Samourais.Find(id);

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

            SamouraiVM samouraiVM = new SamouraiVM();

            samouraiVM.Samourai = samourai;
            samouraiVM.Armes    = db.Armes.ToList();
            if (samouraiVM.Samourai.Arme != null)
            {
                samouraiVM.IdArmeSamourai = samouraiVM.Samourai.Arme.Id;
            }
            samouraiVM.ArtMartials   = db.ArtMartials.ToList();
            samouraiVM.IdArtmartials = samouraiVM.Samourai.ArtMartials.Select(m => m.Id).ToList();

            return(View(samouraiVM));
        }
예제 #13
0
        public ActionResult Create(SamouraisVM vm)
        {
            if (ModelState.IsValid)
            {
                if (vm.IdArme != null)
                {
                    Samourai samAvecArme = db.Samourais.FirstOrDefault(s => s.Arme.Id == vm.IdArme);
                    if (samAvecArme != null)
                    {
                        samAvecArme.Arme            = null;
                        db.Entry(samAvecArme).State = EntityState.Modified;
                    }

                    vm.Samourai.Arme = db.Armes.Find(vm.IdArme);
                }

                vm.Samourai.ArtMartials = db.ArtMartials.Where(am => vm.IdsArtMartial.Contains(am.Id)).ToList();

                db.Samourais.Add(vm.Samourai);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            this.getArmesAndArtMartials(vm);

            return(View(vm));
        }
예제 #14
0
        // GET: Samourais/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Samourai samourai = db.Samourais.Find(id);

            AddPotentialValue(samourai);
            SamouraiViewModel vm = new SamouraiViewModel();

            vm.Samourai = samourai;
            if (samourai == null)
            {
                return(HttpNotFound());
            }

            if (samourai.Arme != null)
            {
                vm.IdArme = samourai.Arme.Id;
            }

            if (samourai.ArtMartiaux != null)
            {
                vm.IdsArtMartials = samourai.ArtMartiaux.Select(a => a.Id).ToList();
            }


            HydrateSamouraiViewModelLists(vm, samourai);
            return(View(vm));
        }
        public ActionResult Edit(SamouraiVM samouraiVm)
        {
            if (ModelState.IsValid)
            {
                Samourai samourai = db.Samourais.Include(s => s.Arme).Include(s => s.ArtsMartiaux).FirstOrDefault(s => s.Id == samouraiVm.Samourai.Id);

                /*db.Samourais.Attach(samourai);*/

                foreach (ArtMartial item in samourai.ArtsMartiaux)
                {
                    db.Entry(item).State = EntityState.Modified;
                }

                samourai.Nom   = samouraiVm.Samourai.Nom;
                samourai.Force = samouraiVm.Samourai.Force;
                if (samouraiVm.IdArme != 0)
                {
                    samourai.Arme = db.Armes.SingleOrDefault(a => a.Id == samouraiVm.IdArme);
                }
                else
                {
                    samourai.Arme = null;
                }
                if (samouraiVm.IdsSelectedArts.Count > 0)
                {
                    samourai.ArtsMartiaux = db.ArtMartials.Where(adb => samouraiVm.IdsSelectedArts.Any(avm => avm == adb.Id)).ToList();
                }

                db.Entry(samourai).State = EntityState.Modified;
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }
            return(View(samouraiVm));
        }
예제 #16
0
        public ActionResult Edit(SamouraiVM vm)
        {
            if (ModelState.IsValid)
            {
                Samourai samourai = db.Samourais.Find(vm.Samourai.Id);
                samourai.Force = vm.Samourai.Force;
                samourai.Nom   = vm.Samourai.Nom;
                if (vm.IdSelectedArme != null)
                {
                    samourai.Arme = db.Armes.FirstOrDefault(a => a.Id == vm.IdSelectedArme.Value);
                }

                if (vm.IdsArtMartial != null)
                {
                    foreach (var artMartial in samourai.ArtMartials)
                    {
                        foreach (var idArtMartial in vm.IdsArtMartial)
                        {
                            if (!(artMartial.Id == idArtMartial))
                            {
                                samourai.ArtMartials = db.ArtMartials.Where(a => vm.IdsArtMartial.Contains(a.Id)).ToList();
                            }
                        }
                    }
                }

                db.Entry(samourai).State = EntityState.Modified;
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }
            return(View(vm));
        }
        // GET: Samourais/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            /*Samourai samourai = db.Samourais.Find(id);*/
            Samourai samourai = db.Samourais.Include(s => s.Arme).FirstOrDefault(s => s.Id == id);

            if (samourai == null)
            {
                return(HttpNotFound());
            }
            SamouraiVM samouraiVm = new SamouraiVM()
            {
                Samourai         = samourai,
                ArmesDisponibles = db.Armes.Where(a => (a.Samourai == null || a.Samourai.Id == samourai.Id)).ToList(),
                ArtsDisponibles  = db.ArtMartials.ToList(),
                // Ajout preselect artsmartiaux
                IdsSelectedArts = samourai.ArtsMartiaux.Select(a => a.Id).ToList()
            };

            if (samourai.Arme != null)
            {
                samouraiVm.IdArme = samourai.Arme.Id;
            }
            return(View(samouraiVm));
        }
 public ActionResult DeleteConfirmed(int id)
 {
     Samourai samourai = db.Samourais.Find(id);
     db.Samourais.Remove(samourai);
     db.SaveChanges();
     return RedirectToAction("Index");
 }
예제 #19
0
        // GET: Samourais/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Samourai samourai = db.Samourais.Find(id);

            if (samourai == null)
            {
                return(HttpNotFound());
            }
            SamouraiVM samouraiVM = new SamouraiVM()
            {
                Samourai = samourai
            };

            samouraiVM = InitListSamouraiVM(samouraiVM);
            if (samourai.Arme != null)
            {
                samouraiVM.IdArme = samourai.Arme.Id;
                samouraiVM.ListeArmes.Add(samourai.Arme);
            }

            return(View(samouraiVM));
        }
        public ActionResult Create(SamouraiViewModel unSamouraiVM)
        {
            try
            {
                Samourai unSamourai = unSamouraiVM.Samourai;

                if (!db.Samourais.Any(s => s.Arme.Id == unSamouraiVM.IdArme))
                {
                    unSamourai.Arme = db.Armes.Find(unSamouraiVM.IdArme);
                }

                foreach (var idArtMartial in unSamouraiVM.IdsArtMartiaux)
                {
                    unSamourai.ArtMartiaux.Add(db.ArtMartials.Find(idArtMartial));
                }

                db.Samourais.Add(unSamourai);
                db.SaveChanges();

                return(RedirectToAction("Index"));
            }
            catch
            {
                return(View());
            }
        }
예제 #21
0
        // GET: CRUDcontroller/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            SamouraiViewModel vm       = new SamouraiViewModel();
            Samourai          samourai = db.Samourais.Find(id);

            vm.Samourai = samourai;
            if (samourai.Arme != null)
            {
                vm.IdArmes = samourai.Arme.Id;
            }
            List <int> armeIds = db.Samourais.Where(x => x.Arme != null).Select(x => x.Arme.Id).ToList();

            vm.Armes = db.Armes.Where(x => !armeIds.Contains(x.Id)).ToList();
            if (samourai.ArtMartials != null)
            {
                vm.IdsArtMartials = samourai.ArtMartials.Select(x => x.Id).ToList();
            }
            vm.ArtMartials = db.ArtMartials.ToList();
            if (samourai == null)
            {
                return(HttpNotFound());
            }
            return(View(vm));
        }
예제 #22
0
        public ActionResult Edit(SamouraiVM vm)
        {
            if (ModelState.IsValid)
            {
                //var sam = db.Samourais.Include(x => x.Arme).FirstOrDefault(x => x.Id == vm.Samourai.Id);
                Samourai sam = db.Samourais.Include(s => s.Arme).FirstOrDefault(s => s.Id == vm.Samourai.Id);
                sam.Artmartials.Clear();
                sam.Force = vm.Samourai.Force;
                sam.Nom   = vm.Samourai.Nom;
                if (vm.ArmesId != null)
                {
                    sam.Arme = db.Armes.Find(vm.ArmesId);
                }
                else
                {
                    sam.Arme = null;
                }

                if (vm.ArtMartialsId != null)
                {
                    foreach (var item in vm.ArtMartialsId)
                    {
                        sam.Artmartials = db.ArtMartials.Where(x => vm.ArtMartialsId.Contains(x.Id)).ToList();
                    }
                }
                db.Entry(sam).State = EntityState.Modified;
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }
            return(View(vm));
        }
예제 #23
0
        // GET: Samourais/Delete/5
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            SamouraiVM sVM      = new SamouraiVM();
            Samourai   samourai = db.Samourais.Find(id);

            if (samourai == null)
            {
                return(HttpNotFound());
            }
            else
            {
                sVM.Samourai = samourai;

                if (samourai.Arme != null)
                {
                    sVM.ArmeId = samourai.Arme.Id;
                }
                if (samourai.ArtMartials.Any())
                {
                    sVM.ListeArtMartials = samourai.ArtMartials.ToList();
                }

                return(View(sVM));
            }
        }
예제 #24
0
        // GET: Samourais/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Samourai samourai = db.Samourais.Find(id);

            if (samourai == null)
            {
                return(HttpNotFound());
            }
            SamouraiVM samouraiVM = new SamouraiVM();

            samouraiVM.Samourai = samourai;
            if (samourai.Arme != null)
            {
                samouraiVM.potentiel = samourai.Force * samourai.Arme.Degats * (samourai.ArtMartiaux.Count + 1);
            }
            else
            {
                samouraiVM.potentiel = samourai.Force * (samourai.ArtMartiaux.Count + 1);
            }
            return(View(samouraiVM));
        }
예제 #25
0
        public ActionResult Create(SamouraiViewModel vm)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    Samourai samourai = new Samourai();
                    samourai.Nom   = vm.Samourai.Nom;
                    samourai.Force = vm.Samourai.Force;
                    samourai.Arme  = db.Armes.Find(vm.IdArme);
                    db.Samourais.Add(samourai);
                    db.SaveChanges();
                    return(RedirectToAction("Index"));
                }

                vm.Armes = db.Armes.Select(x => new SelectListItem()
                {
                    Text = x.Nom, Value = x.Id.ToString()
                }).ToList();
                return(View(vm));
            }
            catch (Exception)
            {
                vm.Armes = db.Armes.Select(x => new SelectListItem()
                {
                    Text = x.Nom, Value = x.Id.ToString()
                }).ToList();

                ModelState.AddModelError("", "Problème de connexion avec la base de données.");
                return(View(vm));
            }
        }
예제 #26
0
        // GET: Samourais/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Samourai samourai = db.Samourais.Find(id);

            if (samourai == null)
            {
                return(HttpNotFound());
            }
            var samouraiVM = new SamouraiVM();

            samouraiVM.ListArmes = db.Armes.Where(a => a.Samourai == null).ToList();
            samouraiVM.ListArtM  = db.ArtMartials.ToList();
            samouraiVM.Samourai  = samourai;
            if (samourai.Arme != null)
            {
                samouraiVM.IdSelected = samourai.Arme.Id;
            }

            if (samourai.ArtMartiaux.Count > 0)
            {
                samourai.ArtMartiaux.ForEach(a => samouraiVM.IdSelectedArtM.Add(a.Id));
            }


            return(View(samouraiVM));
        }
        public ActionResult Create(SamouraiCreateEditVM svm)
        {
            if (ModelState.IsValid && ArmeNotBelongToMoreThanOneSamourai(svm)) //Vérifier qu'une arme ne peut appartenir qu'à un seul samourai
            {
                Samourai samourai = new Samourai();
                samourai.Nom   = svm.Samourai.Nom;
                samourai.Force = svm.Samourai.Force;

                //on vérifie si une arme est sélectionnée pour le samourai
                if (svm.IdSelectedArme != null)
                {
                    samourai.Arme = db.Armes.FirstOrDefault(a => a.Id == svm.IdSelectedArme);
                }

                //on vérifie si des arts martiaux sont associés au samourai
                if (svm.IdSelectedArtMartials.Count > 0)
                {
                    samourai.ArtMartials = db.ArtMartials.Where(a => svm.IdSelectedArtMartials.Contains(a.Id)).ToList();
                }

                db.Samourais.Add(samourai);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            //si ModelState non valide, on renvoie la vue Create avec la liste d'armes et d'arts martiaux
            svm.ArtMartials = db.ArtMartials.Select(a => new SelectListItem {
                Text = a.Nom, Value = a.Id.ToString()
            });
            svm.Armes = db.Armes.Select(a => new SelectListItem {
                Text = a.Nom, Value = a.Id.ToString()
            });
            return(View(svm));
        }
예제 #28
0
        public ActionResult Edit(SamouraiVM vm)
        {
            if (ModelState.IsValid)
            {
                Samourai sm = db.Samourais.Find(vm.Samourai.Id);
                if (sm == null)
                {
                    return(HttpNotFound());
                }
                Arme arme = db.Armes.Find(vm.ArmeId);
                if (arme != sm.Arme)
                {
                    sm.Arme = arme;
                }
                sm.Nom   = vm.Samourai.Nom;
                sm.Force = vm.Samourai.Force;
                sm.ArtMartials.Clear();
                foreach (var item in vm.ArtMartialsIds)
                {
                    ArtMartial am = db.ArtMartials.Find(item);
                    sm.ArtMartials.Add(am);
                }


                db.Entry(sm).State = EntityState.Modified;
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }
            return(View(vm));
        }
예제 #29
0
        // GET: Samourais/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Samourai samourai = db.Samourais.Find(id);

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

            var vm = new SamouraiVM();

            vm.Samourai            = samourai;
            vm.Armes               = GetArmesLibres();
            vm.ArtMartiaux         = db.ArtMartials.ToList();
            vm.SelectedArtMartiaux = samourai.ArtsMartiaux.Select(ar => ar.Id).ToList();

            if (samourai.Arme != null)
            {
                vm.SelectedArme = samourai.Arme.Id;
                vm.Armes.Add(samourai.Arme);
            }

            return(View(vm));
        }
예제 #30
0
        public ActionResult Edit(SamouraiViewModel vm)
        {
            if (ModelState.IsValid)
            {
                // Lazy loading, demander explicitement, passer en eager
                Samourai samouraiToUpdate = db.Samourais
                                            .Include(x => x.Arme)
                                            .Include(s => s.ArtMartiaux)
                                            .FirstOrDefault(s => s.Id == vm.Samourai.Id);
                samouraiToUpdate.Nom   = vm.Samourai.Nom;
                samouraiToUpdate.Force = vm.Samourai.Force;

                // unicité de l'arme
                if (db.Armes.Find(vm.IdArme) != null)
                {
                    foreach (Samourai samourai in db.Samourais.Include(s => s.Arme).Where(s => s.Arme.Id == vm.IdArme))
                    {
                        samourai.Arme = null;
                    }
                    samouraiToUpdate.Arme = db.Armes.Find(vm.IdArme);
                }

                if (vm.IdsArtMartials != null)
                {
                    samouraiToUpdate.ArtMartiaux = db.ArtMartials.Where(am => vm.IdsArtMartials.Contains(am.Id)).ToList();
                }

                db.Entry(samouraiToUpdate).State = EntityState.Modified;
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }
            HydrateSamouraiViewModelLists(vm, db.Samourais.Include(s => s.Arme).FirstOrDefault(s => s.Id == vm.IdArme));
            return(View(vm));
        }