public JediViewModel(ServiceReference.JediWS jedi) { if (jedi != null) { this.Id = jedi.Id; this.Nom = jedi.Nom; this.IsSith = jedi.IsSith; List <CaracteristiqueViewModel> tmpList = new List <CaracteristiqueViewModel>(); foreach (var car in jedi.Caracteristiques) { tmpList.Add(new CaracteristiqueViewModel(car)); } this.Caracteristiques = new CaracteristiqueCollection(tmpList); } }
public ActionResult Edit(int id, FormCollection collection) { try { ServiceReference.JediWS jedi = null; List <CaracteristiqueWS> caracList = new List <CaracteristiqueWS>(); using (ServiceReference.ServiceClient service = new ServiceClient()) { jedi = service.getJedis().First(x => x.Id == id); service.getCaracteristiques().ForEach(x => { if (x.Type == ServiceReference.ETypeCaracteristiqueWS.Jedi) { caracList.Add(x); } }); if (jedi == null) { return(HttpNotFound()); } /* Item1. sur le champs du jedi parce que on a un tuple */ jedi.Nom = Convert.ToString(collection.Get("Item1.Nom")); jedi.IsSith = Convert.ToBoolean(collection.Get("Item1.IsSith") != "false"); jedi.Caracteristiques = new List <CaracteristiqueWS>(); // Pour RAZ string[] checkboxes = collection.GetValues("caracteristiques"); if (checkboxes != null) { foreach (string s in checkboxes) { // On a que les ids des box selected, on ajoute les caracteristiques Int32 caracId = Convert.ToInt32(s); jedi.Caracteristiques.Add(caracList.First(x => x.Id == caracId)); } } service.updateJedi(jedi); } return(RedirectToAction("Index")); } catch { return(View()); } }
// GET: Jedi/Edit/5 public ActionResult Edit(int id) { ServiceReference.JediWS jedi = null; List <CaracteristiqueViewModel> caracList = new List <CaracteristiqueViewModel>(); using (ServiceReference.ServiceClient service = new ServiceClient()) { jedi = service.getJedis().First(x => x.Id == id); if (jedi == null) { return(HttpNotFound()); } /* Selectionne toutes les caracteristiques Jedi qui ne sont pas deja dans le jedi */ caracList = (from carac in service.getCaracteristiques() where !(jedi.Caracteristiques.Exists(x => x.Id == carac.Id)) && carac.Type == ServiceReference.ETypeCaracteristiqueWS.Jedi select new CaracteristiqueViewModel(carac)).ToList(); } /* Tuple de vues parce qu'il faut le jedi et les autres caracteristiques */ return(View(Tuple.Create(new JediViewModel(jedi), new CaracteristiqueCollection(caracList)))); }