// GET: Admin/Documentos/Edit/5 public ActionResult Edit(int id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } Documento Documento = db.Documentos.Include(not => not.DocumentoGrupos).FirstOrDefault(a => a.DocumentoId == id); if (Documento == null) { return(HttpNotFound()); } DocumentoEditViewModel viewModel = new DocumentoEditViewModel(); viewModel.InicializarDesplegables(); viewModel.Documento = Documento; foreach (var grupo in viewModel.GruposUsuarios) { if (Documento.DocumentoGrupos.FirstOrDefault(gr => gr.GrupoUsuarioId == grupo.Id) != null) { grupo.Seleccionado = true; } } return(View(viewModel)); }
public ActionResult Edit(DocumentoEditViewModel viewModel) { if (ModelState.IsValid) { if (viewModel.Documento.TemaId.Value == 0) { viewModel.Documento.TemaId = null; } if (viewModel.Documento.SubTemaId.Value == 0) { viewModel.Documento.SubTemaId = null; } if (viewModel.File != null) { string fullPath = Request.MapPath("~/media/upload/documentos/" + viewModel.Documento.FicheroAdjunto); if (System.IO.File.Exists(fullPath)) { System.IO.File.Delete(fullPath); } viewModel.Documento.FicheroAdjunto = viewModel.Documento.DocumentoId + "_" + viewModel.File.FileName; string nameAndLocation = "~/media/upload/documentos/" + viewModel.Documento.FicheroAdjunto; viewModel.File.SaveAs(Server.MapPath(nameAndLocation)); } db.Entry(viewModel.Documento).State = EntityState.Modified; db.SaveChanges(); foreach (var grupo in viewModel.GruposUsuarios) { var existe = db.DocumentoGrupos.FirstOrDefault(gr => gr.DocumentoId == viewModel.Documento.DocumentoId && gr.GrupoUsuarioId == grupo.Id); if (grupo.Seleccionado && existe == null) { DocumentoGrupo DocumentoGrupo = new DocumentoGrupo() { GrupoUsuarioId = grupo.Id, DocumentoId = viewModel.Documento.DocumentoId }; db.DocumentoGrupos.Add(DocumentoGrupo); db.SaveChanges(); } if (!grupo.Seleccionado && existe != null) { db.DocumentoGrupos.Remove(existe); db.SaveChanges(); } } return(RedirectToAction("Index", new {})); } viewModel.InicializarDesplegables(); return(View(viewModel)); }