Exemple #1
0
        public static List <Medallero> obtenerTablaEstadosSecreta(string clave, TipoOlimpiada tipoOlimpiada)
        {
            OmegaUp           poll       = OmegaUp.obtenerParaOMI(clave, tipoOlimpiada);
            List <Resultados> resultados = Resultados.cargarResultadosSecretos(clave, tipoOlimpiada, poll.dia);
            Dictionary <string, Medallero> diccionario = new Dictionary <string, Medallero>();

            foreach (Resultados resultado in resultados)
            {
                Medallero m = null;
                if (diccionario.ContainsKey(resultado.estado))
                {
                    m = diccionario[resultado.estado];
                }
                else
                {
                    m       = new Medallero();
                    m.clave = resultado.estado;
                    diccionario.Add(resultado.estado, m);
                }
                switch (resultado.medalla)
                {
                case Resultados.TipoMedalla.ORO:
                case Resultados.TipoMedalla.ORO_1:
                case Resultados.TipoMedalla.ORO_2:
                case Resultados.TipoMedalla.ORO_3:
                    m.oros++;
                    break;

                case Resultados.TipoMedalla.PLATA:
                    m.platas++;
                    break;

                case Resultados.TipoMedalla.BRONCE:
                    m.bronces++;
                    break;
                }
                m.puntos += resultado.total;
                m.lugar++;
            }

            List <Medallero> medallero = new List <Medallero>();

            foreach (Medallero m in diccionario.Values)
            {
                m.promedio = m.puntos / m.lugar;
                m.lugar    = 0;
                medallero.Add(m);
            }
            medallero.Sort();

            for (int i = 0; i < medallero.Count; i++)
            {
                medallero[i].lugar = i + 1;
            }

            return(medallero);
        }
Exemple #2
0
        public OmegaUp calculateCachedResults()
        {
            try
            {
                OmegaUp poll = OmegaUp.obtenerParaOMI(this.numero, this.tipoOlimpiada);
                if (poll == null)
                {
                    this.liveResults = false;
                    return(poll);
                }

                if (this.cachedResults == null || resultados == null)
                {
                    cacheResults(poll.dia);
                    this.lastUpdate = poll.timestamp;
                    return(poll);
                }

                if (poll.timestamp.CompareTo(lastUpdate) <= 0)
                {
                    return(poll);
                }

                this.lastUpdate = poll.timestamp;
                cacheResults(poll.dia);

                return(poll);
            }
            catch (Exception e)
            {
                Log.add(Log.TipoLog.SCOREBOARD, "Excepción tratando de cachear resultados para " + this.tipoOlimpiada + " " + this.numero);
                Log.add(Log.TipoLog.SCOREBOARD, e.ToString());

                return(null);
            }
        }