public ActionResult Cuenta(CuentaModificadaViewModel model)
        {
            Cuenta oCuenta = (Cuenta)Session["Usuario"];

            model.nombre = oCuenta.nombre;
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            if (oCuenta.contrasena != CryptoEngine.Encrypt(model.contrasena))
            {
                ModelState.AddModelError("contrasena", "Contraseña incorrecta");
                return(View(model));
            }

            using (var db = new SaludOcupacionalEntities())
            {
                string contrasenaNueva = CryptoEngine.Encrypt(model.contrasenaNueva);
                oCuenta.contrasena = contrasenaNueva;

                db.Entry(oCuenta).State = System.Data.Entity.EntityState.Modified;

                db.SaveChanges();

                TempData["Success"] = "Contraseña cambiada correctamente";
            }

            return(View(model));
        }
        public ActionResult Edit(EditComisionViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            using (var db = new SaludOcupacionalEntities())
            {
                var oComision = db.Comision.Find(model.idComision);
                oComision.contacto         = model.contacto;
                oComision.contactoCorreo   = model.contactoCorreo;
                oComision.contactoTelefono = model.contactoTelefono;
                oComision.jefatura         = model.jefatura;
                oComision.jefaturaCorreo   = model.jefaturaCorreo;
                oComision.jefaturaTelefono = model.jefaturaTelefono;
                oComision.numeroDeRegistro = model.numeroRegistro;
                oComision.fechaDeRegistro  = model.fechaDeRegistro;
                db.Entry(oComision).State  = System.Data.Entity.EntityState.Modified;

                db.SaveChanges();
            }

            return(Redirect(Url.Content("~/ComisionUser/InformacionPrincipal/" + model.idComision)));
        }
        /* Función de controlador tipo GET que permite el borrado lógico de un representante en
         * la base de datos, en caso de que sea necesario.
         * Parámetros: Id del representante*/
        public ActionResult Delete(int?id)
        {
            using (var db = new SaludOcupacionalEntities())
            {
                var oRepresentate = db.Representante.Find(id);
                oRepresentate.estado = 0;

                db.Entry(oRepresentate).State = System.Data.Entity.EntityState.Modified;

                db.SaveChanges();
            }

            return(Redirect(Url.Content("~/ComisionUser/InformacionPrincipal/" + Session["ComisionUserID"])));
        }
        /* Función de controlador tipo GET que se alza cuando la persona presiona "Sí" en la
         * notificación de Informe Entregado, lo que causa que se actualize como "entregado" el
         * informe en la base de datos.
         * Parámetros: Id de la comisión*/
        public ActionResult InformeEntregado(int id)
        {
            using (var db = new SaludOcupacionalEntities())
            {
                var oComision = db.Comision.Find(id);

                oComision.ultimoInforme = DateTime.Today;

                db.Entry(oComision).State = System.Data.Entity.EntityState.Modified;

                db.SaveChanges();
            }
            return(Redirect(Url.Content("~/ComisionUser/InformacionPrincipal/" + id)));
        }
        public ActionResult EditCentroDeTrabajo(CentroDeTrabajoEditViewModel model)
        {
            using (SaludOcupacionalEntities db = new SaludOcupacionalEntities())
            {
                var oCentroDeTrabajo = db.CentroDeTrabajo.Find(model.idCentroDeTrabajo);

                List <SelectListItem> regiones = (from d in db.Region
                                                  orderby d.numeroRegion
                                                  select new SelectListItem
                {
                    Value = d.idRegion.ToString(),
                    Text = d.nombreRegion,
                }).ToList();

                model.listaDeRegiones = new SelectList(regiones, "Value", "Text", oCentroDeTrabajo.idRegion);
            }

            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            using (var db = new SaludOcupacionalEntities())
            {
                int idRegion        = int.Parse(model.idRegion);
                var nombreExistente = db.CentroDeTrabajo.Any(x => (x.nombreCentroDeTrabajo == model.nombre) && (x.idRegion == idRegion));
                if (nombreExistente)
                {
                    ModelState.AddModelError("nombre", "Este Centro de Trabajo ya está registrado en esta región");
                    return(View(model));
                }

                var oCentroDeTrabajo = db.CentroDeTrabajo.Find(model.idCentroDeTrabajo);
                oCentroDeTrabajo.nombreCentroDeTrabajo = model.nombre;
                oCentroDeTrabajo.idRegion = idRegion;

                db.Entry(oCentroDeTrabajo).State = System.Data.Entity.EntityState.Modified;

                db.SaveChanges();

                TempData["Success"] = "Centro de Trabajo modificado correctamente";
            }

            return(View(model));
        }
        public ActionResult Edit(EditRepresentanteViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            using (var db = new SaludOcupacionalEntities())
            {
                var oRepresentate = db.Representante.Find(model.idRepresentante);
                oRepresentate.nombre   = model.nombre;
                oRepresentate.correo   = model.correo;
                oRepresentate.telefono = model.telefono;

                db.Entry(oRepresentate).State = System.Data.Entity.EntityState.Modified;

                db.SaveChanges();
            }

            return(Redirect(Url.Content("~/ComisionUser/InformacionPrincipal/" + Session["ComisionUserID"])));
        }
        public ActionResult EditarNoticia(EditNoticiaViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            using (var db = new SaludOcupacionalEntities())
            {
                var oNoticia = db.Noticia.Find(model.idNoticia);
                oNoticia.titulo = model.titulo;
                oNoticia.texto  = model.texto;

                if (model.archivoNuevo != null)
                {
                    // Si no existía archivo anexado a la noticia, se añade
                    if (model.idArchivoActual == null)
                    {
                        Archivo oArchivo = new Archivo();

                        oArchivo.nombre = model.archivoNuevo.FileName;
                        oArchivo.tipo   = model.archivoNuevo.ContentType;

                        string strDateTime = System.DateTime.Now.ToString("ddMMyyyHHMMss");
                        string filePath    = "\\UploadedFiles\\" + strDateTime + model.archivoNuevo.FileName;

                        model.archivoNuevo.SaveAs(Server.MapPath("~") + filePath);

                        oArchivo.filePath  = filePath;
                        oArchivo.idNoticia = oNoticia.idNoticia;

                        db.Archivo.Add(oArchivo);
                    }
                    // Si se encuentra un archivo nuevo, le cae encima al que existía antes.
                    else
                    {
                        var oArchivo = db.Archivo.Find(model.idArchivoActual);

                        string fullPath = Request.MapPath(oArchivo.filePath);
                        System.IO.File.Delete(fullPath);

                        oArchivo.nombre = model.archivoNuevo.FileName;
                        oArchivo.tipo   = model.archivoNuevo.ContentType;

                        string strDateTime = System.DateTime.Now.ToString("ddMMyyyHHMMss");
                        string filePath    = "\\UploadedFiles\\" + strDateTime + model.archivoNuevo.FileName;

                        model.archivoNuevo.SaveAs(Server.MapPath("~") + filePath);

                        oArchivo.filePath = filePath;

                        db.Entry(oArchivo).State = System.Data.Entity.EntityState.Modified;
                    }
                }


                db.SaveChanges();
            }

            return(Redirect(Url.Content("~/AdminNoticia/VerNoticia/" + model.idNoticia)));
        }