Ejemplo n.º 1
0
        private void llenarDatos(int usuario, TipoOlimpiada tipoOlimpiada = TipoOlimpiada.OMI)
        {
            // Primero obtenemos la persona
            this.persona = Persona.obtenerPersonaConClave(usuario);

            Acceso        db    = new Acceso();
            StringBuilder query = new StringBuilder();

            query.Append(" select olimpiada, medalla, estado from Resultados where concursante = ");
            query.Append(usuario);
            query.Append(" and clase = ");
            query.Append(Cadenas.comillas(tipoOlimpiada.ToString().ToLower()));
            query.Append(" order by medalla");

            db.EjecutarQuery(query.ToString());
            DataTable table = db.getTable();

            medallas = new List <KeyValuePair <Olimpiada, Resultados.TipoMedalla> >();
            estados  = new HashSet <string>();
            foreach (DataRow r in table.Rows)
            {
                Resultados.TipoMedalla medalla = DataRowParser.ToTipoMedalla(DataRowParser.ToString(r["medalla"]));

                if (medalla == Resultados.TipoMedalla.NADA)
                {
                    continue;
                }

                Olimpiada o = Olimpiada.obtenerOlimpiadaConClave(DataRowParser.ToString(r["olimpiada"]), tipoOlimpiada);
                medallas.Add(new KeyValuePair <Olimpiada, Resultados.TipoMedalla>(o, medalla));

                string estado = DataRowParser.ToString(r["estado"]);
                if (!estados.Contains(estado))
                {
                    estados.Add(estado);
                }

                if (medalla == Resultados.TipoMedalla.BRONCE)
                {
                    bronces++;
                }
                else if (medalla == Resultados.TipoMedalla.PLATA)
                {
                    platas++;
                }
                else
                {
                    oros++;
                }
            }
        }
Ejemplo n.º 2
0
        private void llenarDatos(DataRow datos, bool cargarUsuario = false)
        {
            clave   = DataRowParser.ToInt(datos["clave"]);
            tipo    = DataRowParser.ToTipoPeticion(datos["tipo"]);
            subtipo = DataRowParser.ToTipoPeticion(datos["subtipo"]);
            datos1  = DataRowParser.ToString(datos["datos1"]);
            datos2  = DataRowParser.ToString(datos["datos2"]);
            datos3  = DataRowParser.ToString(datos["datos3"]);

            if (cargarUsuario)
            {
                usuario = Persona.obtenerPersonaConClave(DataRowParser.ToInt(datos["usuario"]));
            }
        }
Ejemplo n.º 3
0
        private void llenarDatos(DataRow datos)
        {
            clave      = DataRowParser.ToString(datos["clave"]);
            nombre     = DataRowParser.ToString(datos["nombre"]);
            sitio      = DataRowParser.ToString(datos["sitio"]);
            ISO        = DataRowParser.ToString(datos["iso"]);
            extranjero = DataRowParser.ToBool(datos["ext"]);

            claveDelegado = DataRowParser.ToInt(datos["delegado"]);
            delegado      = Persona.obtenerPersonaConClave(claveDelegado);

            if (delegado != null)
            {
                nombreDelegado  = delegado.nombreCompleto;
                usuarioDelegado = delegado.usuario;
                mailDelegado    = delegado.correo;
            }
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Regresa el Top 3 de todas las olimpiadas
        /// </summary>
        /// <param name="tipoOlimpiada">El tipo de olimpiada</param>
        /// <returns>La lista de top 3 de todas las olimpiadas</returns>
        public static Dictionary <string, List <KeyValuePair <Persona, Resultados.TipoMedalla> > > obtenerTop3(TipoOlimpiada tipoOlimpiada)
        {
            Dictionary <string, List <KeyValuePair <Persona, Resultados.TipoMedalla> > > top3 = new Dictionary <string, List <KeyValuePair <Persona, Resultados.TipoMedalla> > >();

            Acceso        db    = new Acceso();
            StringBuilder query = new StringBuilder();

            query.Append(" select olimpiada, concursante, medalla from resultados where clase =  ");
            query.Append(Cadenas.comillas(tipoOlimpiada.ToString().ToLower()));
            query.Append(" and (medalla = ");
            query.Append((int)Resultados.TipoMedalla.ORO_1);
            query.Append(" or medalla = ");
            query.Append((int)Resultados.TipoMedalla.ORO_2);
            query.Append(" or medalla = ");
            query.Append((int)Resultados.TipoMedalla.ORO_3);
            query.Append(") order by olimpiada, medalla asc");

            db.EjecutarQuery(query.ToString());
            DataTable table = db.getTable();

            List <KeyValuePair <Persona, Resultados.TipoMedalla> > ganadores = null;
            string lastOMI = null;

            foreach (DataRow r in table.Rows)
            {
                string olimpiada               = DataRowParser.ToString(r["olimpiada"]);
                int    concursante             = DataRowParser.ToInt(r["concursante"]);
                Resultados.TipoMedalla medalla = DataRowParser.ToTipoMedalla(r["medalla"]);

                if (lastOMI == null || lastOMI != olimpiada)
                {
                    ganadores = new List <KeyValuePair <Persona, Resultados.TipoMedalla> >();
                    top3.Add(olimpiada.Trim(), ganadores);
                    lastOMI = olimpiada;
                }

                Persona persona = Persona.obtenerPersonaConClave(concursante);
                ganadores.Add(new KeyValuePair <Persona, Resultados.TipoMedalla>(persona, medalla));
            }

            return(top3);
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Regresa la tabla de asistentes en un formato tabulado con comas
        /// para la edición manual para admins
        /// </summary>
        /// <returns>La tabla tabulada con comas</returns>
        public string obtenerTablaAsistentes(bool esParaRegistro = false, bool incluirCabeceras = false, bool esParaOmegaUp = false)
        {
            List <MiembroDelegacion> asistentes = MiembroDelegacion.cargarAsistentesOMI(numero, tipoOlimpiada, esParaRegistro: true);

            StringBuilder tabla = new StringBuilder();

            if (incluirCabeceras)
            {
                // Incluimos cabeceras de datos
                tabla.Append("nivel omi, nombre, estado, tipo asistente, clave, fecha nacimiento, ");
                tabla.Append(" genero, correo, escuela, nivel escuela, año escolar, publica o privada,  ");
                tabla.Append(" celular, telefono, direccion, omegaup, emergencia, parentesco, ");
                tabla.Append(" telefono emergencia, medicina, alergias");
                if (this.esOnline)
                {
                    tabla.Append(", sede");
                }
                tabla.Append("\n");
            }
            if (esParaOmegaUp)
            {
                tabla.Append("username,name,country_id,state_id,gender,school_name\n");
                foreach (MiembroDelegacion asistente in asistentes)
                {
                    if (asistente.tipo == MiembroDelegacion.TipoAsistente.COMPETIDOR)
                    {
                        Persona p = Persona.obtenerPersonaConClave(asistente.claveUsuario, completo: true, incluirDatosPrivados: true);
                        Estado  e = Estado.obtenerEstadoConClave(asistente.estado);
                        tabla.Append(asistente.clave);
                        tabla.Append(",");
                        tabla.Append(p.nombreCompleto);
                        tabla.Append(",");
                        if (e.extranjero)
                        {
                            tabla.Append(e.sitio); // Guardamos el ISO necesario para el país en este campo dado que no se usa para extranjeros
                        }
                        else
                        {
                            tabla.Append("MX");
                            tabla.Append(",");
                            tabla.Append(e.ISO);
                        }
                        tabla.Append(",");
                        tabla.Append(p.genero == "M" ? "male" : "female");
                        tabla.Append(",");
                        tabla.Append(asistente.nombreEscuela);
                        tabla.Append("\n");
                    }
                }
            }
            else
            {
                foreach (MiembroDelegacion asistente in asistentes)
                {
                    if (esParaRegistro)
                    {
                        tabla.Append(tipoOlimpiada);
                        tabla.Append(",");
                    }
                    tabla.Append(asistente.obtenerLineaAdmin(esParaRegistro: esParaRegistro));
                    if (esParaRegistro)
                    {
                        Persona p = Persona.obtenerPersonaConClave(asistente.claveUsuario, completo: true, incluirDatosPrivados: true);
                        tabla.Append(p.obtenerLineaAdmin());
                        if (this.esOnline)
                        {
                            tabla.Append(",");
                            SedeOnline so = SedeOnline.obtenerSedeConClave(asistente.sede);
                            if (so != null)
                            {
                                tabla.Append(Cadenas.comillas(so.nombre, "\""));
                            }
                        }
                    }
                    tabla.Append("\n");
                }
            }

            return(tabla.ToString());
        }