Example #1
0
        public static void StartScoreboard()
        {
            // Primero matamos todos los status que estén en un estado de error
            List <OmegaUp> status = OmegaUp.obtenerInstrucciones(Instruccion.STATUS);

            foreach (OmegaUp s in status)
            {
                if (s.status != Status.OK)
                {
                    s.borrar();
                }
                else
                {
                    // Si encontramos un OK, no iniciamos nada pues ya hay un proceso corriendo
                    return;
                }
            }

            // Obtenemos la dirección del exe
            string directorio = ConfigurationManager.AppSettings.Get(SCOREBOARD_DIRECTORY_STRING);
            string exe        = ConfigurationManager.AppSettings.Get(SCOREBOARD_EXE_STRING);

            ProcessStartInfo psi = new ProcessStartInfo();

            psi.WorkingDirectory = directorio;
            psi.FileName         = exe;
            Process.Start(psi);

            // Esperamos un par de segundos a que el proceso empiece y darle tiempo a la página
            // a que lo registre
            System.Threading.Thread.Sleep(SLEEP_TIME);
        }
Example #2
0
        /// <summary>
        /// Dado que las olimpiadas son pocas y a que se hacen muchas llamadas a la base para obtener estos objetos
        /// los cargamos una vez por aplicacion y los dejamos ahi
        /// </summary>
        /// <returns></returns>
        private static Dictionary <string, Olimpiada> getOlimpiadas(TipoOlimpiada tipoOlimpiada)
        {
            Dictionary <string, Olimpiada> olimpiadas;
            string application = obtenerApplicationString(tipoOlimpiada);

            olimpiadas = (Dictionary <string, Olimpiada>)HttpContext.Current.Application[application];

            if (olimpiadas == null)
            {
                olimpiadas = cargarOlimpiadas(tipoOlimpiada);
                HttpContext.Current.Application[application] = olimpiadas;

                // Cargamos las instrucciones en caso de que haya un scoreboard activo
                List <OmegaUp> polls = OmegaUp.obtenerInstrucciones(OmegaUp.Instruccion.POLL);

                foreach (OmegaUp p in polls)
                {
                    if (p.tipoOlimpiada == tipoOlimpiada)
                    {
                        Olimpiada o = Olimpiada.obtenerOlimpiadaConClave(p.olimpiada, p.tipoOlimpiada);
                        o.liveResults = true;
                    }
                }
            }

            return(olimpiadas);
        }
Example #3
0
 public static void nuevaInstruccion(Instruccion instruccion, bool unica)
 {
     if (!unica || OmegaUp.obtenerInstrucciones(instruccion).Count == 0)
     {
         OmegaUp o = new OmegaUp();
         o.instruccion = instruccion;
         o.guardarNuevo();
     }
 }