/* Función de controlador tipo GET que permite borrar una noticia del sistema. * Parámetros: Id de la noticia a eliminar.*/ public ActionResult BorrarNoticia(int id) { string filePath = ""; using (var db = new SaludOcupacionalEntities()) { var oNoticia = db.Noticia.Find(id); var archivo = from d in db.Archivo where d.idNoticia == id select d; if (archivo.Count() != 0) { Archivo oArchivo = archivo.First(); filePath = oArchivo.filePath; db.Archivo.Remove(oArchivo); string fullPath = Request.MapPath(filePath); System.IO.File.Delete(fullPath); } db.Noticia.Remove(oNoticia); db.SaveChanges(); } return(Redirect(Url.Content("~/AdminNoticia"))); }
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))); }
public ActionResult AddAdminUser(CuentaViewModel model) { if (!ModelState.IsValid) { return(View(model)); } using (var db = new SaludOcupacionalEntities()) { // Revisa si el nombre de usuario ya existe var usernameExists = db.Cuenta.Any(x => x.nombre == model.nombre); if (usernameExists) { ModelState.AddModelError("nombre", "Este nombre de usuario ya existe"); return(View(model)); } Cuenta oCuenta = new Cuenta(); oCuenta.nombre = model.nombre; oCuenta.contrasena = CryptoEngine.Encrypt(model.contrasena); oCuenta.rol = 0; // Rol 0 significa "administrador" db.Cuenta.Add(oCuenta); db.SaveChanges(); } return(Redirect(Url.Content("~/AdminCuenta"))); }
/* 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 AddNoticia(NoticiaViewModel model) { if (!ModelState.IsValid) { return(View(model)); } using (var db = new SaludOcupacionalEntities()) { Noticia oNoticia = new Noticia(); oNoticia.titulo = model.titulo; oNoticia.texto = model.texto; oNoticia.fecha = DateTime.Now; // Fecha y hora del momento actual. db.Noticia.Add(oNoticia); if (model.archivo != null) { Archivo oArchivo = new Archivo(); oArchivo.nombre = model.archivo.FileName; oArchivo.tipo = model.archivo.ContentType; /* Las rutas del archivo se crean mediante la fecha y el nombre del archivo, así evitando que haya * conflictos con archivos que se llamen igual.*/ string strDateTime = System.DateTime.Now.ToString("ddMMyyyHHMMss"); string filePath = "\\UploadedFiles\\" + strDateTime + model.archivo.FileName; model.archivo.SaveAs(Server.MapPath("~") + filePath); oArchivo.filePath = filePath; oArchivo.idNoticia = oNoticia.idNoticia; db.Archivo.Add(oArchivo); } db.SaveChanges(); } return(Redirect(Url.Content("~/AdminNoticia"))); }
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"]))); }
/* Función de controlador tipo GET que permite eliminar un archivo del sistema. * Parámetros: Id del archivo a eliminar.*/ public ActionResult Eliminar(int id) { string filePath = ""; int idNoticia = 0; using (var db = new SaludOcupacionalEntities()) { var oArchivo = db.Archivo.Find(id); filePath = oArchivo.filePath; idNoticia = oArchivo.idNoticia; // Esto es para poder volver a la pantalla de la noticia correcta. db.Archivo.Remove(oArchivo); db.SaveChanges(); } string fullPath = Request.MapPath(filePath); System.IO.File.Delete(fullPath); return(Redirect(Url.Content("~/AdminNoticia/EditarNoticia/" + idNoticia))); }
public ActionResult Add(RepresentanteViewModel model, int id) { if (!ModelState.IsValid) { return(View(model)); } using (var db = new SaludOcupacionalEntities()) { Representante oRepresentante = new Representante(); oRepresentante.nombre = model.nombre; oRepresentante.correo = model.correo; oRepresentante.telefono = model.telefono; oRepresentante.tipo = int.Parse(model.tipo); oRepresentante.estado = 1; oRepresentante.idComision = id; db.Representante.Add(oRepresentante); db.SaveChanges(); } return(Redirect(Url.Content("~/ComisionUser/InformacionPrincipal/" + Session["ComisionUserID"]))); }
public ActionResult AddComisionUser(ComisionViewModel model) { List <SelectListItem> regionesTemp; using (SaludOcupacionalEntities db = new SaludOcupacionalEntities()) { regionesTemp = (from d in db.Region orderby d.numeroRegion select new SelectListItem { Value = d.idRegion.ToString(), Text = d.nombreRegion, }).ToList(); } model.listaDeRegiones = new SelectList(regionesTemp, "Value", "Text"); if (!ModelState.IsValid) { return(View(model)); } using (var db = new SaludOcupacionalEntities()) { // Revisa si el centro de trabajo existe en el sistema CentroDeTrabajo oCentroDeTrabajo = db.CentroDeTrabajo.Find(model.idCentroDeTrabajo); if (oCentroDeTrabajo == null) { ModelState.AddModelError("nombreCentroDeTrabajo", "El Centro de Trabajo no Existe"); return(View(model)); } // Revisa si el centro de trabajo ya tiene una comisión asignada. Sólo puede haber una comisión por centro de trabajo int valido = (from d in db.Comision join ct in db.CentroDeTrabajo on d.idCentroDeTrabajo equals ct.idCentroDeTrabajo where ct.idCentroDeTrabajo == model.idCentroDeTrabajo select d.idCentroDeTrabajo).Count(); if (valido != 0) { ModelState.AddModelError("nombreCentroDeTrabajo", "El Centro de Trabajo ya está asignado a otra comisión"); return(View(model)); } /* Crea el nombre de la comisión de manera predeterminada. Ej: "comisionhatillo" para el centro de trabajo "Hatillo" * Quita los espacios en blanco*/ string nombreComision = String.Concat(oCentroDeTrabajo.nombreCentroDeTrabajo.Where(c => !Char.IsWhiteSpace(c))); nombreComision = "comision" + nombreComision; /* Revisa si el nombre de la comisión ya existe. Esto es para cuentas duplicadas, centros de trabajo que se llamen igual * pero pertenezcan a diferentes regiones, lo cual es válido*/ var usernameExists = db.Cuenta.Any(x => x.nombre == nombreComision); if (usernameExists) { // En caso de repetirse, añade el número de región. Ej "comisionsanrafael2" para San Rafael de Alajuela nombreComision = nombreComision + oCentroDeTrabajo.Region.numeroRegion.ToString(); } // Quita mayúsculas y guiones del nombre nombreComision = nombreComision.ToLower(); nombreComision = Regex.Replace(nombreComision.Normalize(NormalizationForm.FormD), @"[^a-zA-z0-9 ]+", ""); // La contraseña se genera mediante una función de C#, que recibe la cantidad de caracteres y el número de caracteres no alfanuméricos string contrasena = Membership.GeneratePassword(10, 1); ViewBag.nombre = nombreComision; ViewBag.contra = contrasena; // Se encripta la contraseña contrasena = CryptoEngine.Encrypt(contrasena); Cuenta oCuenta = new Cuenta(); oCuenta.nombre = nombreComision; oCuenta.contrasena = contrasena; oCuenta.rol = 1; // Rol 1 significa "usuario" db.Cuenta.Add(oCuenta); Comision oComision = new Comision(); oComision.idCentroDeTrabajo = model.idCentroDeTrabajo; oComision.idCuenta = oCuenta.idCuenta; db.Comision.Add(oComision); db.SaveChanges(); } return(View(model)); }
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))); }