Ejemplo n.º 1
0
        //
        // 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));
        }
Ejemplo n.º 2
0
        //
        // GET: /Estados/Medallas/

        public ActionResult Medallas()
        {
            bool[]           cabeceras;
            List <Olimpiada> olimpiadas = Olimpiada.obtenerOlimpiadas(TipoOlimpiada.OMI);

            ViewBag.olimpiadas = olimpiadas;
            ViewBag.estados    = Medallero.obtenerTablaEstadosGeneral(TipoOlimpiada.OMI, out cabeceras);
            ViewBag.cabeceras  = cabeceras;
            ViewBag.totales    = Medallero.obtenerTablaEstadosGeneral(TipoOlimpiada.OMI);
            ViewBag.admin      = esAdmin();

            return(View(Estado.obtenerEstados()));
        }
Ejemplo n.º 3
0
        //
        // 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));
        }
Ejemplo n.º 4
0
        //
        // GET: /Estado/Desempeño/

        public ActionResult Desempeño(string clave)
        {
            Estado e = Estado.obtenerEstadoConClave(clave);

            if (e == null)
            {
                return(RedirectTo(Pagina.ERROR, 404));
            }

            ViewBag.medalleros = Medallero.obtenerMedalleros(Medallero.TipoMedallero.ESTADO, e.clave);
            ViewBag.resultados = Medallero.obtenerDesempeñoEstado(clave);
            ViewBag.olimpiadas = Olimpiada.obtenerOlimpiadas(TipoOlimpiada.OMI);
            ViewBag.estados    = Estado.obtenerEstados();

            return(View(e));
        }
Ejemplo n.º 5
0
        //
        // GET: /Fotos/Album/

        public ActionResult Album(string id)
        {
            Models.Album album = Models.Album.obtenerAlbum(id);

            if (album == null || string.IsNullOrEmpty(album.id))
            {
                return(RedirectTo(Pagina.ERROR, 404));
            }

            ViewBag.fotos              = Foto.obtenerFotosDeAlbum(id);
            ViewBag.albumes            = Models.Album.obtenerAlbumsDeOlimpiada(album.olimpiada, album.tipoOlimpiada);
            ViewBag.olimpiadas         = Olimpiada.obtenerOlimpiadas(album.tipoOlimpiada);
            ViewBag.olimpiadasConFotos = Models.Album.obtenerOlimpiadasConAlbumes(album.tipoOlimpiada);

            return(View(album));
        }
Ejemplo n.º 6
0
        //
        // 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));
        }
Ejemplo n.º 7
0
        //
        // GET: /Estados/Lugares/

        public ActionResult Lugares()
        {
            bool[]           cabeceras;
            List <Olimpiada> olimpiadas = Olimpiada.obtenerOlimpiadas(TipoOlimpiada.OMI);

            ViewBag.olimpiadas = olimpiadas;
            ViewBag.estados    = Medallero.obtenerTablaEstadosGeneral(TipoOlimpiada.OMI, out cabeceras);
            ViewBag.cabeceras  = cabeceras;

            int ultimoValido = 0;

            for (int i = cabeceras.Length - 1; i >= 0; i--)
            {
                if (cabeceras[i] && olimpiadas[i].estados > 0)
                {
                    ultimoValido = i;
                }
            }

            ViewBag.ultimoValido = ultimoValido;
            ViewBag.admin        = esAdmin();

            return(View(Estado.obtenerEstados()));
        }
Ejemplo n.º 8
0
        //
        // 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));
        }
Ejemplo n.º 9
0
        //
        // GET: /HallOfFame/Top3

        public ActionResult Top3()
        {
            ViewBag.olimpiadas = Olimpiada.obtenerOlimpiadas(TipoOlimpiada.OMI);
            return(View(HallOfFamer.obtenerTop3(TipoOlimpiada.OMI)));
        }
Ejemplo n.º 10
0
        //
        // GET: /Olimpiada/Resultados/

        public ActionResult Resultados(string clave = null, TipoOlimpiada tipo = TipoOlimpiada.OMI, string GUID = null)
        {
            if (GUID != null)
            {
                tryLogIn(GUID);
            }
            Olimpiada o = null;

            if (clave == null)
            {
                o     = Olimpiada.obtenerMasReciente();
                clave = o.numero;
                tipo  = o.tipoOlimpiada;
            }
            else
            {
                o = Olimpiada.obtenerOlimpiadaConClave(clave, tipo);
            }

            if (o == null)
            {
                return(RedirectTo(Pagina.ERROR, 404));
            }

            limpiarErroresViewBag();

            ViewBag.liveResults      = false;
            ViewBag.secretScoreboard = false;
            ViewBag.resultados       = null;
            if (o.liveResults)
            {
                OmegaUp ou = o.calculateCachedResults();
                if (ou != null)
                {
                    Persona p = getUsuario();
                    if (o.esOnline && OmegaUp.RunnerStarted && p != null && p.esSuperUsuario())
                    {
                        ViewBag.secretScoreboard = true;
                        ViewBag.dia             = ou.dia;
                        ViewBag.problemasPorDia = 4; // HARDCODED BUT OH WELL....
                        ViewBag.resultados      = Models.Resultados.cargarResultadosSecretos(clave, tipo, ou.dia);
                    }
                    else
                    {
                        ViewBag.resultados = o.resultados;
                        if (o.resultados.Count > 0)
                        {
                            o.shouldReload(ou.dia);

                            ViewBag.liveResults      = true;
                            ViewBag.RunnerStarted    = OmegaUp.RunnerStarted;
                            ViewBag.dia              = ou.dia;
                            ViewBag.problemasPorDia  = ou.dia == 1 ? o.problemasDia1 : o.problemasDia2;
                            ViewBag.lastUpdate       = (DateTime.UtcNow.Ticks - ou.timestamp.Ticks) / TimeSpan.TicksPerSecond;
                            ViewBag.ticks            = ou.timestamp.Ticks;
                            ViewBag.scoreboardName   = ou.concurso;
                            ViewBag.scoreboardToken  = ou.token;
                            ViewBag.remainingSeconds = ou.getRemainingContestTime();
                        }
                    }
                }
            }
            if (ViewBag.resultados == null)
            {
                ViewBag.resultados = Models.Resultados.cargarResultados(clave, tipo, porLugar: !o.puntosDesconocidos && o.noMedallistasConocidos && o.datosPublicos, cargarObjetos: true);
            }

            ViewBag.problemasDia1 = Problema.obtenerProblemasDeOMI(clave, tipo, 1);
            ViewBag.problemasDia2 = Problema.obtenerProblemasDeOMI(clave, tipo, 2);
            ViewBag.claveUsuario  = getUsuario().clave;
            ViewBag.olimpiadas    = Olimpiada.obtenerOlimpiadas(TipoOlimpiada.OMI);

            if (o.alsoOmips)
            {
                ViewBag.omis = Olimpiada.obtenerOlimpiadas(TipoOlimpiada.OMIS);
                ViewBag.omip = Olimpiada.obtenerOlimpiadas(TipoOlimpiada.OMIP);
            }

            List <Problema> metadata = Problema.obetnerMetaDatadeOMI(clave, tipo);

            if (metadata.Count >= 3)
            {
                ViewBag.numerosDia1  = metadata[1];
                ViewBag.numerosDia2  = metadata[2];
                ViewBag.numerosTotal = metadata[0];
            }

            ViewBag.extranjeros = MiembroDelegacion.obtenerEstadosExtranjerosEnOlimpiada(o.numero);

            return(View(o));
        }
Ejemplo n.º 11
0
        //
        // GET: /Olimpiadas/

        public ActionResult Index()
        {
            limpiarErroresViewBag();
            return(View(Olimpiada.obtenerOlimpiadas(TipoOlimpiada.OMI)));
        }
Ejemplo n.º 12
0
        //
        // GET: /Problemas/

        public ActionResult Index(TipoOlimpiada tipo = TipoOlimpiada.OMI)
        {
            ViewBag.tipo       = tipo;
            ViewBag.olimpiadas = Olimpiada.obtenerOlimpiadas(tipo);
            return(View(Problema.obtenerProblemas(tipo)));
        }