// GET: Admin/Vocabularios/Edit/5 public ActionResult Edit(int id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } Vocabulario Vocabulario = db.Vocabularios.Include(a => a.DefinicionVocabularios).FirstOrDefault(a => a.VocabularioId == id); if (Vocabulario == null) { return(HttpNotFound()); } VocabularioEditViewModel viewModel = new VocabularioEditViewModel(); viewModel.DefinicionesVocabulario = ""; foreach (var def in Vocabulario.DefinicionVocabularios) { viewModel.DefinicionesVocabulario += def.Palabra_es + "_" + def.Definicion + "#"; } if (viewModel.DefinicionesVocabulario.Length > 0) { viewModel.DefinicionesVocabulario = viewModel.DefinicionesVocabulario.Substring(0, viewModel.DefinicionesVocabulario.Length - 1); } viewModel.Vocabulario = Vocabulario; viewModel.InicializarDesplegables(); return(View(viewModel)); }
public ActionResult Edit(VocabularioEditViewModel viewModel) { if (ModelState.IsValid) { if (viewModel.AudioFile != null) { string fullPath = Request.MapPath("~/media/upload/audio/" + viewModel.Vocabulario.FicheroAudio); if (System.IO.File.Exists(fullPath)) { System.IO.File.Delete(fullPath); } viewModel.Vocabulario.FicheroAudio = viewModel.Vocabulario.VocabularioId + ".mp3"; string nameAndLocation = "~/media/upload/audio/" + viewModel.Vocabulario.FicheroAudio; viewModel.AudioFile.SaveAs(Server.MapPath(nameAndLocation)); } db.Entry(viewModel.Vocabulario).State = EntityState.Modified; db.SaveChanges(); Vocabulario Vocabulario = db.Vocabularios.Include(a => a.DefinicionVocabularios).FirstOrDefault(a => a.VocabularioId == viewModel.Vocabulario.VocabularioId); List <DefinicionVocabulario> listaNueva = new List <DefinicionVocabulario>(); if (!string.IsNullOrEmpty(viewModel.DefinicionesVocabulario)) { var definiciones = viewModel.DefinicionesVocabulario.Split('#'); foreach (var palDef in definiciones) { var arrPalDef = palDef.Split('_'); var existe = Vocabulario.DefinicionVocabularios.FirstOrDefault(dv => dv.Palabra_es == arrPalDef[0] && dv.Definicion == arrPalDef[1]); if (existe == null) { DefinicionVocabulario defVoc = new DefinicionVocabulario() { Palabra_es = arrPalDef[0], Definicion = arrPalDef[1], VocabularioId = Vocabulario.VocabularioId }; listaNueva.Add(defVoc); } else { listaNueva.Add(existe); } } } List <string> listaNuevos = listaNueva.Select(ln => ln.Palabra_es + "_" + ln.Definicion).ToList(); var definicionQuitar = Vocabulario.DefinicionVocabularios.Where(dv => !listaNuevos.Contains(dv.Palabra_es + "_" + dv.Definicion)); List <string> listaExisten = Vocabulario.DefinicionVocabularios.Select(ln => ln.Palabra_es + "_" + ln.Definicion).ToList(); listaNueva.RemoveAll(dv => listaExisten.Contains(dv.Palabra_es + "_" + dv.Definicion)); db.DefinicionVocabularios.RemoveRange(definicionQuitar); db.DefinicionVocabularios.AddRange(listaNueva); db.SaveChanges(); return(RedirectToAction("Index", new {})); } viewModel.InicializarDesplegables(); return(View(viewModel)); }