// // GET: /Registro/EliminarSede public ActionResult EliminarSede(int clave) { SedeOnline so = SedeOnline.obtenerSedeConClave(clave); Persona p = getUsuario(); Olimpiada o = null; if (so != null) { o = Olimpiada.obtenerOlimpiadaConClave(so.omi, so.tipoOlimpiada); } if (so == null || !tienePermisos(o.registroActivo || o.registroSedes, so.estado) || (!p.esSuperUsuario() && !o.registroSedes)) { return(RedirectTo(Pagina.HOME)); } List <MiembroDelegacion> miembros = MiembroDelegacion.obtenerMiembrosEnSede(clave); if (miembros.Count > 0) { return(RedirectTo(Pagina.HOME)); } so.borrar(); // Se registra la telemetria Log.add(Log.TipoLog.REGISTRO, "Usuario " + getUsuario().nombreCompleto + " elimino la sede " + so.nombre + " del estado " + so.estado); return(RedirectTo(Pagina.REGISTRO, new { omi = so.omi, estado = so.estado })); }
// // GET: /Olimpiada/Edit/ public ActionResult Edit(string clave, TipoOlimpiada tipo = TipoOlimpiada.OMI) { if (!estaLoggeado()) { guardarParams(Pagina.LOGIN, Pagina.EDIT_OLIMPIADA, clave + ":" + tipo.ToString()); return(RedirectTo(Pagina.LOGIN)); } if (!esAdmin()) { return(RedirectTo(Pagina.ERROR, 401)); } Olimpiada o = Olimpiada.obtenerOlimpiadaConClave(clave, tipo); if (o == null) { return(RedirectTo(Pagina.ERROR, 404)); } limpiarErroresViewBag(); ViewBag.clave = clave; ViewBag.poster = o.poster; return(View(o)); }
public ActionResult Edit(Album album) { if (!esAdmin() || album == null) { return(RedirectTo(Pagina.HOME)); } Olimpiada o = Olimpiada.obtenerOlimpiadaConClave(album.olimpiada, album.tipoOlimpiada); if (o == null) { return(RedirectTo(Pagina.ERROR, 404)); } if (!ModelState.IsValid) { return(View(album)); } album.guardarDatos(); Log.add(Log.TipoLog.FACEBOOK, "Álbum " + album.id + " actualizado por admin " + getUsuario().nombreCompleto); return(RedirectTo(Pagina.FOTOS, album.olimpiada)); }
// // GET: /Olimpiada/Attendees/ public ActionResult Attendees(string clave, TipoOlimpiada tipo = TipoOlimpiada.OMI) { if (!estaLoggeado()) { guardarParams(Pagina.LOGIN, Pagina.ATTENDEES_OMI, clave); return(RedirectTo(Pagina.LOGIN)); } if (!esAdmin()) { return(RedirectTo(Pagina.ERROR, 401)); } Olimpiada o = Olimpiada.obtenerOlimpiadaConClave(clave, tipo); if (o == null) { return(RedirectTo(Pagina.ERROR, 404)); } ViewBag.asistentes = o.obtenerTablaAsistentes(); limpiarErroresViewBag(); return(View(o)); }
// // GET: /Olimpiada/ public ActionResult Index(string clave, TipoOlimpiada tipo = TipoOlimpiada.OMI) { if (clave == Olimpiada.TEMP_CLAVE) { return(RedirectTo(Pagina.EDIT_OLIMPIADA, clave + ":" + tipo.ToString())); } Olimpiada o = Olimpiada.obtenerOlimpiadaConClave(clave, tipo); if (o == null) { return(RedirectTo(Pagina.ERROR, 404)); } limpiarErroresViewBag(); ViewBag.clave = clave; ViewBag.dia1 = Problema.obtenerProblemasDeOMI(clave, tipo, 1); ViewBag.dia2 = Problema.obtenerProblemasDeOMI(clave, tipo, 2); ViewBag.metadata = Problema.obetnerMetaDatadeOMI(clave, tipo); // Mientras las OMIS y OMIPS sean en el mismo evento que la OMI, no tienen su propia vista ViewBag.olimpiadas = Olimpiada.obtenerOlimpiadas(TipoOlimpiada.OMI); ViewBag.fotos = Album.obtenerAlbumsDeOlimpiada(clave, tipo).Count > 0; return(View(o)); }
public ActionResult Attendees(string tabla, string clave, TipoOlimpiada tipo = TipoOlimpiada.OMI) { if (!esAdmin() || tabla == null || clave == null) { return(RedirectTo(Pagina.HOME)); } Olimpiada o = Olimpiada.obtenerOlimpiadaConClave(clave, tipo); if (o == null || clave == Olimpiada.TEMP_CLAVE) { return(RedirectTo(Pagina.ERROR, 404)); } limpiarErroresViewBag(); ViewBag.omi = clave; string errores = o.guardarTablaAsistentes(tabla); if (errores.Length > 0) { ViewBag.errorOMI = true; ViewBag.asistentes = errores; } else { ViewBag.guardado = true; Log.add(Log.TipoLog.ADMIN, "Participantes de " + o.tipoOlimpiada + " " + o.año + " actualizados por admin " + getUsuario().nombre); } return(View(o)); }
// // GET: /Problema/Edit/ public ActionResult Edit(string omi, int dia, int numero, TipoOlimpiada tipo = TipoOlimpiada.OMI) { if (!estaLoggeado()) { guardarParams(Pagina.LOGIN, Pagina.PROBLEMA, omi + ":" + dia + ":" + numero); return(RedirectTo(Pagina.LOGIN)); } if (!esAdmin()) { return(RedirectTo(Pagina.ERROR, 401)); } Olimpiada o = Olimpiada.obtenerOlimpiadaConClave(omi, tipo); if (o == null) { return(RedirectTo(Pagina.ERROR, 401)); } if (dia < 0 || dia > 2) { return(RedirectTo(Pagina.ERROR, 401)); } if (numero < 0 || numero > 4) { return(RedirectTo(Pagina.ERROR, 401)); } Problema p = Problema.obtenerProblema(omi, tipo, dia, numero); return(View(p)); }
// // GET: /Olimpiada/ResultsTable/ public ActionResult ResultsTable(string clave, TipoOlimpiada tipo = TipoOlimpiada.OMI) { if (!estaLoggeado()) { guardarParams(Pagina.LOGIN, Pagina.RESULTS_TABLE, clave); return(RedirectTo(Pagina.LOGIN)); } if (!esAdmin()) { return(RedirectTo(Pagina.ERROR, 401)); } Olimpiada o = Olimpiada.obtenerOlimpiadaConClave(clave, tipo); if (o == null) { return(RedirectTo(Pagina.ERROR, 404)); } ViewBag.dia1 = o.problemasDia1; ViewBag.dia2 = o.problemasDia2; ViewBag.resultados = o.obtenerResultadosAdmin(); limpiarErroresViewBag(); return(View(o)); }
public ActionResult ResultsTable(string tabla, string clave, TipoOlimpiada tipo = TipoOlimpiada.OMI, bool run = false) { if (!esAdmin() || tabla == null || clave == null) { return(RedirectTo(Pagina.HOME)); } Olimpiada o = Olimpiada.obtenerOlimpiadaConClave(clave, tipo); if (o == null || clave == Olimpiada.TEMP_CLAVE) { return(RedirectTo(Pagina.ERROR, 404)); } limpiarErroresViewBag(); ViewBag.omi = clave; ViewBag.dia1 = o.problemasDia1; ViewBag.dia2 = o.problemasDia2; string errores = o.guardarTablaResultados(tabla, run); if (errores.Length > 0) { ViewBag.errorOMI = true; ViewBag.resultados = errores; } else { ViewBag.guardado = true; Log.add(Log.TipoLog.ADMIN, "Resultados de " + o.tipoOlimpiada + " " + o.año + " actualizados por admin " + getUsuario().nombreCompleto); } return(View(o)); }
// // GET: /Admin/Trim/ public ActionResult Trim(TipoOlimpiada tipo, int tiempo, int dia, string omi = "") { if (!esAdmin()) { return(RedirectTo(Pagina.ERROR, 401)); } Olimpiada o; if (String.IsNullOrEmpty(omi)) { o = Olimpiada.obtenerMasReciente(); } else { o = Olimpiada.obtenerOlimpiadaConClave(omi, TipoOlimpiada.OMI); } if (o == null) { return(RedirectTo(Pagina.ERROR, 401)); } DetalleLugar.clean(o.numero, tipo, dia); DetalleLugar.trim(o.numero, tipo, tiempo, dia); DetallePuntos.clean(o.numero, tipo, dia); DetallePuntos.trim(o.numero, tipo, tiempo, dia); return(RedirectTo(Pagina.ADMIN_SCOREBOARD)); }
// // GET: /Registro/Sede public ActionResult Sede(string omi, string estado, TipoOlimpiada tipo, int clave = 0) { failSafeViewBag(); Persona p = getUsuario(); Olimpiada o = Olimpiada.obtenerOlimpiadaConClave(omi, tipo); ViewBag.omi = o == null ? new Olimpiada() : o; if (o == null || !tienePermisos(o.registroActivo || o.registroSedes, estado) || (!p.esSuperUsuario() && !o.registroSedes)) { ViewBag.errorInfo = "permisos"; return(View(new SedeOnline())); } SedeOnline so = null; if (clave > 0) { so = SedeOnline.obtenerSedeConClave(clave); if (so == null || so.estado != estado && !p.esSuperUsuario()) { ViewBag.errorInfo = "permisos"; return(View(new SedeOnline())); } } ViewBag.estado = Estado.obtenerEstadoConClave(estado); if (so == null) { so = new SedeOnline(); } return(View(so)); }
// // GET: /Registro/Delegacion public ActionResult Delegacion(string omi = null, string estado = null, TipoOlimpiada tipo = TipoOlimpiada.OMI) { if (omi == null) { omi = Olimpiada.obtenerMasReciente(yaEmpezada: false).numero; } failSafeViewBag(); Olimpiada o = Olimpiada.obtenerOlimpiadaConClave(omi, tipo); ViewBag.omi = o == null ? new Olimpiada() : o; if (o == null || !tienePermisos(o.registroActivo || o.registroSedes, estado)) { ViewBag.permisos = true; return(View(new List <MiembroDelegacion>())); } Persona p = getUsuario(); ViewBag.invitaciones = false; if (!p.esSuperUsuario()) { if (estado == null) { return(RedirectTo(Pagina.HOME)); } Estado e = Estado.obtenerEstadoConClave(estado); ViewBag.estado = e; ViewBag.invitaciones = Archivos.existeArchivo(Archivos.Folder.INVITACIONES, omi + "\\" + estado + "\\" + e.ISO + "-1.pdf") || Archivos.existeArchivo(Archivos.Folder.INVITACIONES, omi + "\\" + estado + "\\S-" + e.ISO + "-1.pdf") || Archivos.existeArchivo(Archivos.Folder.INVITACIONES, omi + "\\" + estado + "\\P-" + e.ISO + "-1.pdf"); } List <MiembroDelegacion> registrados = MiembroDelegacion.obtenerMiembrosDelegacion(omi, p.esSuperUsuario() ? null : estado, o.tipoOlimpiada); ViewBag.hayResultados = Resultados.hayResultadosParaOMI(o.numero); if (o.esOnline) { List <SedeOnline> sedes = SedeOnline.obtenerSedes(omi, p.esSuperUsuario() ? null : estado, tipo); Dictionary <int, List <MiembroDelegacion> > miembrosPorSede = new Dictionary <int, List <MiembroDelegacion> >(); foreach (SedeOnline sede in sedes) { List <MiembroDelegacion> miembrosEnSede = MiembroDelegacion.obtenerMiembrosEnSede(sede.clave); miembrosPorSede.Add(sede.clave, miembrosEnSede); } ViewBag.miembrosPorSede = miembrosPorSede; ViewBag.sedes = sedes; } return(View(registrados)); }
public JsonResult ResultadosAjax(string clave, TipoOlimpiada tipo, long ticks, bool retry) { Olimpiada o = Olimpiada.obtenerOlimpiadaConClave(clave, tipo); if (o == null) { return(Json(ERROR)); } OmegaUp ou = o.calculateCachedResults(); ScoreboardAjax ajax = new ScoreboardAjax(); if (ou == null || !OmegaUp.RunnerStarted) { ajax.status = ScoreboardAjax.Status.ERROR.ToString(); return(Json(ajax)); } ajax.timeToFinish = ou.getRemainingContestTime(); if (ajax.timeToFinish == 0) { ajax.resultados = o.cachedResults; ajax.status = ScoreboardAjax.Status.FINISHED.ToString(); return(Json(ajax)); } // Retry es verdadero cuando le mandamos 0 problemas al cliente // en ese caso, es probable que necesitemos recagar los objetos // olimpiada de la base de datos if (retry) { ajax.retry = o.shouldReload(ou.dia); ajax.status = ScoreboardAjax.Status.NOT_CHANGED.ToString(); return(Json(ajax)); } if (ou.timestamp.Ticks == ticks) { ajax.status = ScoreboardAjax.Status.NOT_CHANGED.ToString(); } else { ajax.ticks = ou.timestamp.Ticks.ToString(); ajax.status = ScoreboardAjax.Status.UPDATED.ToString(); ajax.resultados = o.cachedResults; ajax.secondsSinceUpdate = (int)Math.Round((decimal)(DateTime.UtcNow.Ticks - ou.timestamp.Ticks) / TimeSpan.TicksPerSecond); } return(Json(ajax)); }
public JsonResult Buscar(string omi, TipoOlimpiada tipo, string query, string estado) { Olimpiada o = Olimpiada.obtenerOlimpiadaConClave(omi, tipo); if (o == null || !tienePermisos(o.registroActivo, estado)) { Json("error"); } Persona p = getUsuario(); return(Json(MiembroDelegacion.buscarParaRegistro(omi, tipo, estado, query, p.esSuperUsuario()))); }
// // GET: /Registro/Invitaciones public ActionResult Invitaciones(string omi, string estado) { Olimpiada o = Olimpiada.obtenerOlimpiadaConClave(omi, TipoOlimpiada.OMI); if (o == null || !tienePermisos(o.registroActivo || o.registroSedes, estado)) { return(RedirectTo(Pagina.HOME)); } return(File(Archivos.comprimeArchivos( Archivos.Folder.INVITACIONES, omi + "\\" + estado), "application/zip", "Invitaciones.zip")); }
// // GET: /Registro/GeneraInvitaciones public ActionResult GeneraInvitaciones(string omi) { Olimpiada o = Olimpiada.obtenerOlimpiadaConClave(omi, TipoOlimpiada.OMI); if (o == null || !esAdmin()) { return(RedirectTo(Pagina.HOME)); } ViewBag.invitaciones = MiembroDelegacion.generarInvitaciones(omi); return(View()); }
public ActionResult Sede(SedeOnline sede) { Olimpiada o = Olimpiada.obtenerOlimpiadaConClave(sede.omi, sede.tipoOlimpiada); if (o == null || !tienePermisos(o.registroActivo || o.registroSedes, sede.estado)) { return(RedirectTo(Pagina.HOME)); } failSafeViewBag(); ViewBag.omi = o; Persona p = getUsuario(); if (!p.esSuperUsuario() && !o.registroSedes) { ViewBag.errorInfo = "permisos"; return(View(new SedeOnline())); } if (sede.clave > 0) { SedeOnline so = SedeOnline.obtenerSedeConClave(sede.clave); if (so == null || so.estado != sede.estado && !p.esSuperUsuario()) { ViewBag.errorInfo = "permisos"; return(View(new SedeOnline())); } } ViewBag.omi = o; ViewBag.estado = Estado.obtenerEstadoConClave(sede.estado); // Validaciones del modelo if (!ModelState.IsValid) { return(View(sede)); } sede.guardar(); ViewBag.guardado = true; if (sede.clave == 0) { Log.add(Log.TipoLog.REGISTRO, "Usuario " + p.nombreCompleto + " agregó sede " + sede.nombre + " en el estado " + sede.estado); } else { Log.add(Log.TipoLog.REGISTRO, "Usuario " + p.nombreCompleto + " actualizó sede " + sede.nombre + " en el estado " + sede.estado); } return(View(sede)); }
// // GET: /Registro/GetCSV/ public ActionResult GetCSV(string omi, TipoOlimpiada tipo, bool paraOmegaUp = false) { Persona p = getUsuario(); Olimpiada o = Olimpiada.obtenerOlimpiadaConClave(omi, TipoOlimpiada.OMI); if (!p.esSuperUsuario() || o == null) { return(RedirectTo(Pagina.HOME)); } StringBuilder texto = new StringBuilder(); if (paraOmegaUp) { o = Olimpiada.obtenerOlimpiadaConClave(omi, tipo); if (o != null) { texto.Append(o.obtenerTablaAsistentes(esParaOmegaUp: true)); } } else if (TableManager.isOMIPOS(tipo)) { o = Olimpiada.obtenerOlimpiadaConClave(omi, TipoOlimpiada.OMIPO); if (o != null) { texto.Append(o.obtenerTablaAsistentes(esParaRegistro: true)); } o = Olimpiada.obtenerOlimpiadaConClave(omi, TipoOlimpiada.OMISO); if (o != null) { texto.Append(o.obtenerTablaAsistentes(esParaRegistro: true)); } } else { texto.Append(o.obtenerTablaAsistentes(esParaRegistro: true, incluirCabeceras: true)); o = Olimpiada.obtenerOlimpiadaConClave(omi, TipoOlimpiada.OMIP); if (o != null) { texto.Append(o.obtenerTablaAsistentes(esParaRegistro: true)); } o = Olimpiada.obtenerOlimpiadaConClave(omi, TipoOlimpiada.OMIS); if (o != null) { texto.Append(o.obtenerTablaAsistentes(esParaRegistro: true)); } } return(File(Archivos.creaArchivoTexto(texto.ToString()), "text/csv", "asistentes.csv")); }
// // GET: /Olimpiada/Delegacion/ public ActionResult Delegacion(string clave, string estado, TipoOlimpiada tipo = TipoOlimpiada.OMI) { if (tipo == TipoOlimpiada.OMIS || tipo == TipoOlimpiada.OMIP) { tipo = TipoOlimpiada.OMI; } Olimpiada o = Olimpiada.obtenerOlimpiadaConClave(clave, tipo); if (o == null || o.numero == Olimpiada.TEMP_CLAVE) { return(RedirectTo(Pagina.ERROR, 404)); } Estado e = Estado.obtenerEstadoConClave(estado); if (e == null) { return(RedirectTo(Pagina.ERROR, 404)); } Dictionary <TipoOlimpiada, List <MiembroDelegacion> > delegaciones = new Dictionary <TipoOlimpiada, List <MiembroDelegacion> >(); delegaciones.Add(tipo, MiembroDelegacion.obtenerMiembrosDelegacion(clave, estado, tipo, MiembroDelegacion.TipoAsistente.COMPETIDOR, listarPorAño: o.año)); if (tipo == TipoOlimpiada.OMI && o.alsoOmips) { delegaciones.Add(TipoOlimpiada.OMIP, MiembroDelegacion.obtenerMiembrosDelegacion(clave, estado, TipoOlimpiada.OMIP, MiembroDelegacion.TipoAsistente.COMPETIDOR, listarPorAño: o.año)); delegaciones.Add(TipoOlimpiada.OMIS, MiembroDelegacion.obtenerMiembrosDelegacion(clave, estado, TipoOlimpiada.OMIS, MiembroDelegacion.TipoAsistente.COMPETIDOR, listarPorAño: o.año)); } ViewBag.liveResults = o.liveResults; ViewBag.estado = e; ViewBag.delegaciones = delegaciones; ViewBag.lideres = MiembroDelegacion.obtenerMiembrosDelegacion(clave, estado, tipo, MiembroDelegacion.TipoAsistente.LIDER); ViewBag.otros = MiembroDelegacion.obtenerMiembrosDelegacion(clave, estado, tipo, MiembroDelegacion.TipoAsistente.INVITADO); ViewBag.medallas = Medallero.obtenerMedallas(tipo, Medallero.TipoMedallero.ESTADO_POR_OMI, estado + "_" + clave); ViewBag.olimpiadas = Olimpiada.obtenerOlimpiadas(tipo); ViewBag.olimpiadasParaEstado = Olimpiada.obtenerOlimpiadasParaEstado(estado); ViewBag.tipo = tipo; ViewBag.estadosEnOlimpiada = MiembroDelegacion.obtenerEstadosEnOlimpiada(o.numero); if (delegaciones[tipo].Count == 0) { ViewBag.vinoAOlimpiada = ViewBag.estado.estadoVinoAOlimpiada(tipo, clave); } return(View(o)); }
// // GET: /Olimpiada/Estados/ public ActionResult Estados(string clave = null, TipoOlimpiada tipo = TipoOlimpiada.OMI) { if (tipo != TipoOlimpiada.OMI) { return(RedirectTo(Pagina.ERROR, 404)); } Olimpiada o; if (clave == null) { o = Olimpiada.obtenerMasReciente(); clave = o.numero; tipo = o.tipoOlimpiada; } else { o = Olimpiada.obtenerOlimpiadaConClave(clave, tipo); } if (o == null || o.numero == Olimpiada.TEMP_CLAVE) { return(RedirectTo(Pagina.ERROR, 404)); } Medallero medalleroGeneral; Persona p = getUsuario(); ViewBag.liveResults = o.liveResults; if (o.esOnline && OmegaUp.RunnerStarted && p != null && p.esSuperUsuario()) { ViewBag.secretScoreboard = true; ViewBag.estados = Medallero.obtenerTablaEstadosSecreta(clave, o.tipoOlimpiada); ViewBag.medalleroGeneral = null; } else { ViewBag.secretScoreboard = false; ViewBag.estados = Medallero.obtenerTablaEstados(o.tipoOlimpiada, clave, out medalleroGeneral); ViewBag.medalleroGeneral = medalleroGeneral; } ViewBag.olimpiadas = Olimpiada.obtenerOlimpiadas(tipo); ViewBag.hayPromedio = Medallero.hayPromedio(ViewBag.estados); ViewBag.hayPuntos = Medallero.hayPuntos(ViewBag.estados); return(View(o)); }
// // GET: /Registro/Select public ActionResult Select(string omi = null, TipoOlimpiada tipo = TipoOlimpiada.OMI, string GUID = null) { if (GUID != null) { tryLogIn(GUID); } if (omi == null) { omi = Olimpiada.obtenerMasReciente(yaEmpezada: false).numero; } Olimpiada o = Olimpiada.obtenerOlimpiadaConClave(omi, tipo); if (o == null || !(o.registroActivo || o.registroSedes)) { Olimpiada op = Olimpiada.obtenerOlimpiadaConClave(omi, TipoOlimpiada.OMIPO); if (op != null && (op.registroActivo || op.registroSedes)) { tipo = TipoOlimpiada.OMIPO; o = op; } } if (o == null || !tienePermisos(o.registroActivo || o.registroSedes)) { return(RedirectTo(Pagina.HOME)); } Persona p = getUsuario(); if (p.esSuperUsuario()) { return(RedirectTo(Pagina.REGISTRO, new { tipo = tipo })); } List <Estado> estados = p.obtenerEstadosDeDelegado(); if (estados.Count == 1) { return(RedirectTo(Pagina.REGISTRO, new { omi = omi, estado = estados[0].clave, tipo = tipo })); } ViewBag.estados = estados; ViewBag.tipo = o.tipoOlimpiada; return(View()); }
// // GET: /Olimpiada/Numeros/ public ActionResult Numeros(string clave, TipoOlimpiada tipo = TipoOlimpiada.OMI) { if (!esAdmin() || clave == null) { return(RedirectTo(Pagina.HOME)); } Olimpiada o = Olimpiada.obtenerOlimpiadaConClave(clave, tipo); if (o == null || clave == Olimpiada.TEMP_CLAVE) { return(RedirectTo(Pagina.ERROR, 404)); } o.calcularNumeros(); return(RedirectTo(Pagina.OLIMPIADA, clave)); }
// // GET: /Registro/Terminar public ActionResult Terminar(string omi, string estado, TipoOlimpiada tipo) { Olimpiada o = Olimpiada.obtenerOlimpiadaConClave(omi, tipo); if (o == null || !tienePermisos(o.registroActivo || o.registroSedes, estado)) { return(RedirectTo(Pagina.HOME)); } MiembroDelegacion md = MiembroDelegacion.obtenerMiembrosDelegacion(omi, estado, tipo)[0]; if (md.cerrado && !getUsuario().esSuperUsuario()) { return(RedirectTo(Pagina.HOME)); } MiembroDelegacion.cerrarOAbrirRegistro(omi, estado, !md.cerrado, tipo); return(RedirectTo(Pagina.REGISTRO, new { omi = omi, estado = estado, tipo = tipo })); }
public JsonResult OverlayAjax(string omi, TipoOlimpiada tipo, string clave) { Olimpiada o = Olimpiada.obtenerOlimpiadaConClave(omi, tipo); if (o == null) { return(Json(ERROR)); } OverlayAjax response = new OverlayAjax(); response.puntosD1 = DetallePuntos.cargarResultados(omi, tipo, clave, 1, o.problemasDia1); response.lugaresD1 = DetalleLugar.cargarResultados(omi, tipo, 1, clave); if (o.problemasDia2 > 0) { response.puntosD2 = DetallePuntos.cargarResultados(omi, tipo, clave, 2, o.problemasDia2); response.lugaresD2 = DetalleLugar.cargarResultados(omi, tipo, 2, clave); } response.problemas = Models.Resultados.cargarMejores(omi, tipo, clave, o.problemasDia1, o.problemasDia2); return(Json(response)); }
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)); }
// // GET: /Admin/BorrarScoreboard/ public ActionResult BorrarScoreboard(int clave = 0) { if (!esAdmin()) { return(RedirectTo(Pagina.ERROR, 401)); } if (clave == 0) { OmegaUp.borrarTodo(); Olimpiada.resetOMIs(TipoOlimpiada.OMI); Olimpiada.resetOMIs(TipoOlimpiada.OMIS); Olimpiada.resetOMIs(TipoOlimpiada.OMIP); OmegaUp.RunnerStarted = false; } else { OmegaUp om = OmegaUp.obtenerConClave(clave); OmegaUp.borrarConClave(clave); if (om.instruccion == OmegaUp.Instruccion.POLL) { OmegaUp om2 = OmegaUp.obtenerParaOMI(om.olimpiada, om.tipoOlimpiada); if (om2 == null) { Olimpiada o = Olimpiada.obtenerOlimpiadaConClave(om.olimpiada, om.tipoOlimpiada); o.liveResults = false; } } else if (om.instruccion == OmegaUp.Instruccion.KILL) { OmegaUp.RunnerStarted = false; } } return(RedirectTo(Pagina.ADMIN_SCOREBOARD)); }
// // GET: /Fotos/Edit/ public ActionResult Edit(string omi, TipoOlimpiada tipo = TipoOlimpiada.OMI, string id = null) { if (!esAdmin()) { return(RedirectTo(Pagina.ERROR, 504)); } Album al = Models.Album.obtenerAlbum(id); if (omi == null && !String.IsNullOrEmpty(id)) { omi = al.olimpiada; tipo = al.tipoOlimpiada; } if (String.IsNullOrEmpty(id)) { al.update = true; } if (tipo == TipoOlimpiada.OMIP || tipo == TipoOlimpiada.OMIS) { tipo = TipoOlimpiada.OMI; } Olimpiada o = Olimpiada.obtenerOlimpiadaConClave(omi, tipo); if (o == null) { return(RedirectTo(Pagina.ERROR, 404)); } al.olimpiada = omi; al.tipoOlimpiada = tipo; return(View(al)); }
public ActionResult Scoreboard(OmegaUp poll) { if (!esAdmin()) { return(RedirectTo(Pagina.ERROR, 401)); } poll.instruccion = OmegaUp.Instruccion.POLL; poll.guardarNuevo(); Olimpiada o = Olimpiada.obtenerOlimpiadaConClave(poll.olimpiada, poll.tipoOlimpiada); if (o != null) { o.liveResults = true; if (o.esOnline) { OmegaUp.nuevaInstruccion(OmegaUp.Instruccion.HIDE, true); } } return(RedirectTo(Pagina.ADMIN_SCOREBOARD)); }
// // GET: /Fotos/ public ActionResult Index(string clave, TipoOlimpiada tipo = TipoOlimpiada.OMI) { if (tipo == TipoOlimpiada.OMIP || tipo == TipoOlimpiada.OMIS) { tipo = TipoOlimpiada.OMI; } Olimpiada o = Olimpiada.obtenerOlimpiadaConClave(clave, tipo); if (o == null) { return(RedirectTo(Pagina.ERROR, 404)); } List <Album> albumes = Models.Album.obtenerAlbumsDeOlimpiada(clave, tipo); if (!esAdmin()) { if (albumes == null || albumes.Count == 0) { return(RedirectTo(Pagina.ERROR, 404)); } if (albumes.Count == 1) { return(RedirectTo(Pagina.ALBUM, albumes[0].id)); } } ViewBag.olimpiada = o; ViewBag.admin = esAdmin(); ViewBag.olimpiadas = Olimpiada.obtenerOlimpiadas(tipo); ViewBag.olimpiadasConFotos = Models.Album.obtenerOlimpiadasConAlbumes(tipo); return(View(albumes)); }
// // GET: /Registro/Eliminar public ActionResult Eliminar(string omi, TipoOlimpiada tipo, string estado, string clave) { Olimpiada o = Olimpiada.obtenerOlimpiadaConClave(omi, tipo); if (o == null || !tienePermisos(o.registroActivo, estado) || Resultados.hayResultadosParaOMI(omi)) { return(RedirectTo(Pagina.HOME)); } MiembroDelegacion md = MiembroDelegacion.obtenerMiembrosConClave(omi, tipo, clave)[0]; Persona p = getUsuario(); if (!p.esSuperUsuario() && md.estado != estado) { return(RedirectTo(Pagina.HOME)); } md.borrarMiembroDelegacion(); // Se registra la telemetria Log.add(Log.TipoLog.REGISTRO, "Usuario " + getUsuario().nombreCompleto + " elimino al asistente con clave " + md.clave + " del estado " + md.estado + " en la categoría " + md.tipoOlimpiada.ToString()); return(RedirectTo(Pagina.REGISTRO, new { omi = omi, estado = estado, tipo = tipo })); }