public ActionResult Edit(HttpPostedFileBase file, Institucion escuela) { if (!esAdmin() || escuela == null) // -TODO- Agregar validacion para usuarios { RedirectTo(Pagina.HOME); } limpiarErroresViewBag(); if (!esAdmin() && !revisaCaptcha()) { ViewBag.errorCaptcha = true; return(View(escuela)); } if (!ModelState.IsValid) { return(View(escuela)); } // Validaciones logo if (file != null) { Utilities.Archivos.ResultadoImagen resultado = Utilities.Archivos.esImagenValida(file); if (resultado != Utilities.Archivos.ResultadoImagen.VALIDA) { ViewBag.errorImagen = resultado.ToString().ToLower(); return(View(escuela)); } escuela.logo = Utilities.Archivos.guardaArchivo(file, Path.GetFileNameWithoutExtension(file.FileName) + ".png"); } // Se guardan los datos if (escuela.guardar(generarPeticiones: !esAdmin())) { if (esAdmin()) { if (file != null) { Utilities.Archivos.copiarArchivo(escuela.logo, Utilities.Archivos.Folder.TEMPORAL, escuela.clave.ToString(), Utilities.Archivos.Folder.ESCUELAS); Utilities.Archivos.eliminarArchivo(escuela.logo, Utilities.Archivos.Folder.TEMPORAL); } guardarParams(Pagina.SAVED_ESCUELA, OK); return(RedirectTo(Pagina.SAVED_ESCUELA, escuela.nombreURL)); } guardarParams(Pagina.SAVED_ESCUELA, ADMIN); return(RedirectTo(Pagina.SAVED_ESCUELA, escuela.nombreURL)); } else { guardarParams(Pagina.SAVED_ESCUELA, ERROR); return(RedirectTo(Pagina.SAVED_ESCUELA, escuela.nombreURL)); } }
public ActionResult Edit(Olimpiada omi, string clave, string poster, HttpPostedFileBase fileLogo, HttpPostedFileBase filePoster) { if (!esAdmin() || omi == null) { return(RedirectTo(Pagina.HOME)); } Olimpiada o = Olimpiada.obtenerOlimpiadaConClave(clave, omi.tipoOlimpiada); if (o == null) { return(RedirectTo(Pagina.ERROR, 404)); } limpiarErroresViewBag(); ViewBag.clave = clave; ViewBag.poster = poster; omi.poster = poster; omi.copiarDatosPrecalculados(o); if (!ModelState.IsValid) { return(View(omi)); } if (omi.numero.Trim().Length == 0 || omi.numero == Olimpiada.TEMP_CLAVE) { ViewBag.errorOMI = true; return(View(omi)); } Estado e = Estado.obtenerEstadoConClave(omi.claveEstado); if (e == null) { ViewBag.errorEstado = true; return(View(omi)); } if (fileLogo != null) { Utilities.Archivos.ResultadoImagen resultadoLogo = Utilities.Archivos.esImagenValida(fileLogo); if (resultadoLogo != Utilities.Archivos.ResultadoImagen.VALIDA) { ViewBag.errorImagen = resultadoLogo.ToString().ToLower(); return(View(omi)); } } if (filePoster != null) { Utilities.Archivos.ResultadoImagen resultadoPoster = Utilities.Archivos.esImagenValida(filePoster, allowContainer: true); if (resultadoPoster != Utilities.Archivos.ResultadoImagen.VALIDA) { ViewBag.errorInfo = resultadoPoster.ToString().ToLower(); return(View(omi)); } omi.poster = filePoster.FileName; } if (!omi.guardarDatos(clave: clave)) { ViewBag.errorGuardar = true; return(View(omi)); } if (fileLogo != null) { Utilities.Archivos.guardaArchivo(fileLogo, omi.numero + ".png", Utilities.Archivos.Folder.OLIMPIADAS); } if (filePoster != null) { Utilities.Archivos.guardaArchivo(filePoster, filePoster.FileName, Utilities.Archivos.Folder.POSTERS); } ViewBag.guardado = true; Log.add(Log.TipoLog.ADMIN, o.tipoOlimpiada + " " + o.año + " actualizada por admin " + getUsuario().nombreCompleto); return(View(omi)); }
public ActionResult Edit(HttpPostedFileBase file, Estado estado) { if (!estaLoggeado() || estado == null) { RedirectTo(Pagina.HOME); } Estado e = Estado.obtenerEstadoConClave(estado.clave); if (e == null) { return(RedirectTo(Pagina.ERROR, 404)); } Persona p = getUsuario(); if (!(esAdmin() || p.clave == e.claveDelegado)) { RedirectTo(Pagina.HOME); } limpiarErroresViewBag(); if (!String.IsNullOrEmpty(estado.nombreDelegado) || !String.IsNullOrEmpty(estado.mailDelegado)) { ViewBag.delegadoModificado = true; if (String.IsNullOrEmpty(estado.nombreDelegado)) { ViewBag.errorUsuario = ERROR; return(View(estado)); } if (String.IsNullOrEmpty(estado.mailDelegado)) { ViewBag.errorMail = ERROR; return(View(estado)); } } else { ViewBag.delegadoModificado = false; } if (!ModelState.IsValid) { return(View(estado)); } // Validaciones logo if (file != null) { Utilities.Archivos.ResultadoImagen resultado = Utilities.Archivos.esImagenValida(file); if (resultado != Utilities.Archivos.ResultadoImagen.VALIDA) { ViewBag.errorImagen = resultado.ToString().ToLower(); return(View(estado)); } } if (ViewBag.delegadoModificado) { estado.delegado = Persona.obtenerPersonaConNombre(estado.nombreDelegado); if (estado.delegado == null) { estado.delegado = new Persona(); estado.delegado.breakNombre(estado.nombreDelegado); estado.delegado.correo = estado.mailDelegado; estado.delegado.nuevoUsuario(Utilities.Archivos.FotoInicial.DOMI); Peticion pe = new Peticion(); pe.tipo = Peticion.TipoPeticion.USUARIO; pe.usuario = estado.delegado; } } else { estado.delegado = null; } // Regresando los valores que solo super usuarios deberían de poder modificar // * JUST IN CASE * if (!getUsuario().esSuperUsuario()) { estado.nombre = e.nombre; estado.ISO = e.ISO; } if (!estado.guardar()) { return(RedirectTo(Pagina.ERROR, 500)); } if (file != null) { Utilities.Archivos.guardaArchivo(file, e.clave + ".png", Utilities.Archivos.Folder.ESTADOS); } ViewBag.guardado = true; return(View(estado)); }