Example #1
0
        // 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));
        }
Example #2
0
        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));
        }