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));
        }
        public ActionResult Create(DocumentoCreateViewModel viewModel)
        {
            //fichero pdf
            //"~/media/upload/Documentos_puntos/"

            if (ModelState.IsValid)
            {
                viewModel.Documento.Fecha = DateTime.Now;
                if (viewModel.Documento.TemaId.Value == 0)
                {
                    viewModel.Documento.TemaId = null;
                }
                if (viewModel.Documento.SubTemaId.Value == 0)
                {
                    viewModel.Documento.SubTemaId = null;
                }
                db.Documentos.Add(viewModel.Documento);
                db.SaveChanges();
                if (viewModel.File != null)
                {
                    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)
                {
                    if (grupo.Seleccionado)
                    {
                        DocumentoGrupo DocumentoGrupo = new DocumentoGrupo()
                        {
                            GrupoUsuarioId = grupo.Id,
                            DocumentoId    = viewModel.Documento.DocumentoId
                        };
                        db.DocumentoGrupos.Add(DocumentoGrupo);
                        db.SaveChanges();
                    }
                }

                return(RedirectToAction("Index", new { }));
            }
            viewModel.InicializarDesplegables();
            return(View(viewModel));
        }