public ActionResult Edit(Problema p) { if (!esAdmin()) { return(RedirectTo(Pagina.HOME)); } if (p.tipoOlimpiada == TipoOlimpiada.NULL) { p.tipoOlimpiada = TipoOlimpiada.OMI; } Olimpiada o = Olimpiada.obtenerOlimpiadaConClave(p.olimpiada, p.tipoOlimpiada); if (o == null || p.olimpiada == Olimpiada.TEMP_CLAVE) { return(RedirectTo(Pagina.ERROR, 401)); } if (p.dia < 0 || p.dia > 2) { return(RedirectTo(Pagina.ERROR, 401)); } if (p.numero < 0 || p.numero > 4) { return(RedirectTo(Pagina.ERROR, 401)); } if (!ModelState.IsValid) { return(View(p)); } p.guardar(); return(RedirectTo(Pagina.OLIMPIADA, p.olimpiada)); }