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++; } } }
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"])); } }
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; } }
/// <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); }
/// <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()); }