public ActionResult Create(NoticiaCreateViewModel viewModel)
        {
            //fichero pdf
            //"~/media/upload/Noticias_puntos/"

            if (ModelState.IsValid)
            {
                var UserId = ((ClaimsIdentity)User.Identity).FindFirst("UserId").Value;
                viewModel.Noticia.UsuarioId    = UserId;
                viewModel.Noticia.Fecha        = DateTime.Now;
                viewModel.Noticia.TextoResumen = HtmlTextHelper.QuitarEtiquetas(viewModel.Noticia.Texto);
                if (viewModel.Noticia.TextoResumen.Length > 200)
                {
                    viewModel.Noticia.TextoResumen = viewModel.Noticia.TextoResumen.Substring(0, 200);
                }
                if (User.IsInRole("AdministradorGrupo"))
                {
                    var ClienteId = ((ClaimsIdentity)User.Identity).FindFirst("ClienteId").Value;
                    viewModel.Noticia.ClienteId = Convert.ToInt32(ClienteId);
                }
                db.Noticias.Add(viewModel.Noticia);
                db.SaveChanges();
                if (viewModel.File != null)
                {
                    viewModel.Noticia.FicheroAdjunto = viewModel.Noticia.NoticiaId + "_" + viewModel.File.FileName;

                    string nameAndLocation = "~/media/upload/Noticias_adjuntos/" + viewModel.Noticia.FicheroAdjunto;
                    viewModel.File.SaveAs(Server.MapPath(nameAndLocation));

                    db.Entry(viewModel.Noticia).State = EntityState.Modified;
                    db.SaveChanges();
                }
                if (viewModel.ImageFile != null)
                {
                    viewModel.Noticia.Foto = viewModel.Noticia.NoticiaId + ".jpg";

                    string nameAndLocation = "~/media/upload/Noticias_imagenes/" + viewModel.Noticia.Foto;

                    FileUploadHelper.SubirImagenArticulo(viewModel.ImageFile, 800, 640, Server.MapPath(Url.Content(nameAndLocation)));

                    db.Entry(viewModel.Noticia).State = EntityState.Modified;
                    db.SaveChanges();
                }

                if (User.IsInRole("AdministradorGrupo"))
                {
                    var GrupoUsuarioId = ((ClaimsIdentity)User.Identity).FindFirst("GrupoUsuario").Value;

                    NoticiaGrupo noticiaGrupo = new NoticiaGrupo()
                    {
                        GrupoUsuarioId = Convert.ToInt32(GrupoUsuarioId),
                        NoticiaId      = viewModel.Noticia.NoticiaId
                    };
                    db.NoticiaGrupos.Add(noticiaGrupo);
                    db.SaveChanges();
                }
                if (User.IsInRole("Admin"))
                {
                    foreach (var grupo in viewModel.GruposUsuarios)
                    {
                        if (grupo.Seleccionado)
                        {
                            NoticiaGrupo noticiaGrupo = new NoticiaGrupo()
                            {
                                GrupoUsuarioId = grupo.Id,
                                NoticiaId      = viewModel.Noticia.NoticiaId
                            };
                            db.NoticiaGrupos.Add(noticiaGrupo);
                            db.SaveChanges();
                        }
                    }
                }

                return(RedirectToAction("Index", new { }));
            }
            viewModel.InicializarDesplegables();
            return(View(viewModel));
        }
        public ActionResult Edit(NoticiaEditViewModel viewModel)
        {
            if (ModelState.IsValid)
            {
                if (viewModel.File != null)
                {
                    string fullPath = Request.MapPath("~/media/upload/Noticias_adjuntos/" + viewModel.Noticia.FicheroAdjunto);
                    if (System.IO.File.Exists(fullPath))
                    {
                        System.IO.File.Delete(fullPath);
                    }
                    viewModel.Noticia.FicheroAdjunto = viewModel.Noticia.NoticiaId + "_" + viewModel.File.FileName;

                    string nameAndLocation = "~/media/upload/Noticias_audios/" + viewModel.Noticia.FicheroAdjunto;
                    viewModel.File.SaveAs(Server.MapPath(nameAndLocation));
                }

                if (viewModel.ImageFile != null)
                {
                    string fullPath = Request.MapPath("~/media/upload/Noticias_imagenes/" + viewModel.Noticia.Foto);
                    if (System.IO.File.Exists(fullPath))
                    {
                        System.IO.File.Delete(fullPath);
                    }
                    viewModel.Noticia.Foto = viewModel.Noticia.NoticiaId + ".jpg";

                    string nameAndLocation = "~/media/upload/Noticias_imagenes/" + viewModel.Noticia.Foto;
                    viewModel.ImageFile.SaveAs(Server.MapPath(nameAndLocation));
                }
                viewModel.Noticia.TextoResumen = HtmlTextHelper.QuitarEtiquetas(viewModel.Noticia.Texto);
                if (viewModel.Noticia.TextoResumen.Length > 200)
                {
                    viewModel.Noticia.TextoResumen = viewModel.Noticia.TextoResumen.Substring(0, 200);
                }

                db.Entry(viewModel.Noticia).State = EntityState.Modified;
                db.SaveChanges();

                foreach (var grupo in viewModel.GruposUsuarios)
                {
                    var existe = db.NoticiaGrupos.FirstOrDefault(gr => gr.NoticiaId == viewModel.Noticia.NoticiaId && gr.GrupoUsuarioId == grupo.Id);

                    if (grupo.Seleccionado && existe == null)
                    {
                        NoticiaGrupo noticiaGrupo = new NoticiaGrupo()
                        {
                            GrupoUsuarioId = grupo.Id,
                            NoticiaId      = viewModel.Noticia.NoticiaId
                        };
                        db.NoticiaGrupos.Add(noticiaGrupo);
                        db.SaveChanges();
                    }
                    if (!grupo.Seleccionado && existe != null)
                    {
                        db.NoticiaGrupos.Remove(existe);
                        db.SaveChanges();
                    }
                }

                return(RedirectToAction("Index", new {}));
            }

            viewModel.InicializarDesplegables();
            return(View(viewModel));
        }