public static void clean(string omi, TipoOlimpiada tipo, int dia) { StringBuilder query = new StringBuilder(); Acceso db = new Acceso(); query.Append(" select * from DetalleLugar where olimpiada = "); query.Append(Cadenas.comillas(omi)); query.Append(" and clase = "); query.Append(Cadenas.comillas(tipo.ToString().ToLower())); query.Append(" and dia = "); query.Append(dia); query.Append(" order by clave, timestamp asc "); db.EjecutarQuery(query.ToString()); DataTable table = db.getTable(); bool first = false; DetalleLugar anterior = new DetalleLugar(); DetalleLugar actual = new DetalleLugar(); foreach (DataRow r in table.Rows) { actual.lugar = DataRowParser.ToInt(r["lugar"]); actual.timestamp = DataRowParser.ToInt(r["timestamp"]); actual.medalla = DataRowParser.ToTipoMedalla(r["medalla"]); actual.clave = DataRowParser.ToString(r["clave"]); if (actual.clave != anterior.clave) { first = true; } else { if (actual.medalla == anterior.medalla && actual.lugar == anterior.lugar) { if (!first) { borrar(omi, tipo.ToString().ToLower(), anterior.clave, anterior.timestamp, dia); } first = false; } else { first = true; } } anterior.lugar = actual.lugar; anterior.timestamp = actual.timestamp; anterior.medalla = actual.medalla; anterior.clave = actual.clave; } }
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++; } } }
/// <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); }
private void llenarDatos(DataRow row) { clave = DataRowParser.ToString(row["clave"]); lugar = DataRowParser.ToInt(row["lugar"]); medalla = DataRowParser.ToTipoMedalla(row["medalla"]); }