private void llenarDatos(DataRow row) { clave = DataRowParser.ToString(row["clave"]); timestamp = DataRowParser.ToInt(row["timestamp"]); puntosProblemas = new List <float?>(); for (int i = 0; i < 6; i++) { puntosProblemas.Add(DataRowParser.ToFloat(row["puntosP" + (i + 1)])); } puntosDia = DataRowParser.ToFloat(row["puntosD"]); }
public static void clean(string omi, TipoOlimpiada tipo, int dia) { StringBuilder query = new StringBuilder(); Acceso db = new Acceso(); query.Append(" select * from DetallePuntos 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; DetallePuntos anterior = new DetallePuntos(); DetallePuntos actual = new DetallePuntos(); foreach (DataRow r in table.Rows) { actual.puntosDia = DataRowParser.ToFloat(r["puntosD"]); actual.timestamp = DataRowParser.ToInt(r["timestamp"]); actual.clave = DataRowParser.ToString(r["clave"]); if (actual.clave != anterior.clave) { first = true; } else { if (actual.puntosDia == anterior.puntosDia) { if (!first) { borrar(omi, tipo.ToString().ToLower(), anterior.clave, anterior.timestamp, dia); } first = false; } else { first = true; } } anterior.puntosDia = actual.puntosDia; anterior.timestamp = actual.timestamp; anterior.clave = actual.clave; } }
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"])); } }
/// <summary> /// Actualiza la última entrada en la tabla para el concursante mandado como parámetro /// </summary> public static void actualizarUltimo(string omi, TipoOlimpiada tipo, int dia, string clave, int lugar, Resultados.TipoMedalla medalla) { StringBuilder query = new StringBuilder(); Acceso db = new Acceso(); // Primero obtenemos el timestamp mas grande query.Append(" select MAX(timestamp) 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(" and clave = "); query.Append(Cadenas.comillas(clave)); db.EjecutarQuery(query.ToString()); DataTable table = db.getTable(); if (table.Rows.Count == 0) { return; } int timestamp = DataRowParser.ToInt(table.Rows[0][0]); query.Clear(); // Ahora actualizamos los puntos query.Append("update DetalleLugar set lugar = "); query.Append(lugar); if (medalla != Resultados.TipoMedalla.DESCALIFICADO) { query.Append(", medalla = "); query.Append((int)medalla); } query.Append(" 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(" and clave = "); query.Append(Cadenas.comillas(clave)); query.Append(" and timestamp = "); query.Append(timestamp); db.EjecutarQuery(query.ToString()); }
public void llenarDatos(DataRow datos) { tipoOlimpiada = DataRowParser.ToTipoOlimpiada(datos["clase"]); tipoMedallero = DataRowParser.ToTipoMedallero(datos["tipo"]); clave = DataRowParser.ToString(datos["clave"]); oros = DataRowParser.ToInt(datos["oro"]); platas = DataRowParser.ToInt(datos["plata"]); bronces = DataRowParser.ToInt(datos["bronce"]); otros = DataRowParser.ToInt(datos["otros"]); puntos = DataRowParser.ToFloat(datos["puntos"]); promedio = DataRowParser.ToFloat(datos["promedio"]); lugar = DataRowParser.ToInt(datos["lugar"]); omi = DataRowParser.ToString(datos["omi"]); }
private void llenarDatos(DataRow datos) { olimpiada = DataRowParser.ToString(datos["olimpiada"]); tipoOlimpiada = DataRowParser.ToTipoOlimpiada(datos["clase"]); dia = DataRowParser.ToInt(datos["dia"]); numero = DataRowParser.ToInt(datos["numero"]); nombre = DataRowParser.ToString(datos["nombre"]); url = DataRowParser.ToString(datos["url"]); media = DataRowParser.ToStrictFloat(datos["media"]); perfectos = DataRowParser.ToInt(datos["perfectos"]); ceros = DataRowParser.ToInt(datos["ceros"]); mediana = DataRowParser.ToStrictFloat(datos["mediana"]); casos = DataRowParser.ToString(datos["casos"]); codigo = DataRowParser.ToString(datos["codigo"]); solucion = DataRowParser.ToString(datos["solucion"]); }
public void llenarDatos(DataRow r) { clave = DataRowParser.ToInt(r["clave"]); nombre = DataRowParser.ToString(r["nombre"]); omi = DataRowParser.ToString(r["olimpiada"]); tipoOlimpiada = DataRowParser.ToTipoOlimpiada(r["clase"]); estado = DataRowParser.ToString(r["estado"]); supervisor = DataRowParser.ToString(r["supervisor"]); telefono = DataRowParser.ToString(r["telefono"]); correo = DataRowParser.ToString(r["correo"]); supervisor2 = DataRowParser.ToString(r["supervisor2"]); telefono2 = DataRowParser.ToString(r["telefono2"]); correo2 = DataRowParser.ToString(r["correo2"]); supervisor3 = DataRowParser.ToString(r["supervisor3"]); telefono3 = DataRowParser.ToString(r["telefono3"]); correo3 = DataRowParser.ToString(r["correo3"]); }
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; } }
private void llenarDatos(DataRow r) { id = DataRowParser.ToString(r["id"]); lastUpdated = DataRowParser.ToDateTime(r["lastUpdated"]); orden = DataRowParser.ToInt(r["orden"]); // Los datos generales no guardan nada mas if (id == ALBUM_GRAL) { return; } olimpiada = DataRowParser.ToString(r["olimpiada"]); tipoOlimpiada = DataRowParser.ToTipoOlimpiada(r["clase"]); fotos = DataRowParser.ToInt(r["fotos"]); nombre = DataRowParser.ToString(r["nombre"]); portada = DataRowParser.ToString(r["portada"]); newsletter = DataRowParser.ToBool(r["newsletter"]); }
public static int obtenerTimestampMasReciente(string clave, TipoOlimpiada tipo, int dia) { Acceso db = new Acceso(); StringBuilder query = new StringBuilder(); query.Append(" select top 1 timestamp from detallepuntos "); query.Append(" where clase = "); query.Append(Cadenas.comillas(tipo.ToString().ToLower())); query.Append(" and olimpiada = "); query.Append(Cadenas.comillas(clave)); query.Append(" and dia = "); query.Append(dia); query.Append(" order by timestamp desc "); db.EjecutarQuery(query.ToString()); DataTable table = db.getTable(); return(DataRowParser.ToInt(table.Rows[0][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); }
private void llenarDatos(DataRow r) { clave = DataRowParser.ToInt(r["clave"]); instruccion = DataRowParser.ToInstruccion(r["tipo"]); olimpiada = DataRowParser.ToString(r["olimpiada"]); tipoOlimpiada = DataRowParser.ToTipoOlimpiada(r["clase"]); dia = DataRowParser.ToShort(r["dia"]); ping = DataRowParser.ToInt(r["ping"]); concurso = DataRowParser.ToString(r["concurso"]); token = DataRowParser.ToString(r["token"]); prefijo = DataRowParser.ToString(r["prefijo"]); status = DataRowParser.ToStatus(r["status"]); secondsToFinish = DataRowParser.ToInt(r["secondsToFinish"]); try { timestamp = new DateTime(DataRowParser.ToLong(r["timestamp"])); } catch (Exception) { } }
/// <summary> /// Llena los datos de una persona de la fila mandada como parametro /// </summary> /// <param name="datos">La fila con el origen de los datos</param> /// <param name="completo">Si es true, saca todos los datos de la fila, de ser false, solo nombre, usuario y clave</param> /// <param name="completo">Si es true, incluye datos privados como telefono y direccion </param> public void llenarDatos(DataRow datos, bool completo = true, bool incluirDatosPrivados = false) { clave = DataRowParser.ToInt(datos["clave"]); nombre = DataRowParser.ToString(datos["nombre"]); apellidoPaterno = DataRowParser.ToString(datos["apellidoP"]); apellidoMaterno = DataRowParser.ToString(datos["apellidoM"]); usuario = DataRowParser.ToString(datos["usuario"]); omips = DataRowParser.ToBool(datos["omips"]); oculta = DataRowParser.ToBool(datos["oculta"]); foto = DataRowParser.ToString(datos["foto"]); if (completo) { nacimiento = DataRowParser.ToDateTime(datos["nacimiento"]); facebook = DataRowParser.ToString(datos["facebook"]); twitter = DataRowParser.ToString(datos["twitter"]); sitio = DataRowParser.ToString(datos["sitio"]); correo = DataRowParser.ToString(datos["correo"]); permisos = DataRowParser.ToTipoPermisos(datos["permisos"]); genero = DataRowParser.ToString(datos["genero"]); ioiID = DataRowParser.ToInt(datos["ioiID"]); omegaup = DataRowParser.ToString(datos["omegaup"]); topcoder = DataRowParser.ToString(datos["topcoder"]); codeforces = DataRowParser.ToString(datos["codeforces"]); if (incluirDatosPrivados) { celular = DataRowParser.ToString(datos["celular"]); telefono = DataRowParser.ToString(datos["telefono"]); direccion = DataRowParser.ToString(datos["direccion"]); emergencia = DataRowParser.ToString(datos["emergencia"]); parentesco = DataRowParser.ToString(datos["parentesco"]); telEmergencia = DataRowParser.ToString(datos["telemergencia"]); medicina = DataRowParser.ToString(datos["medicina"]); alergias = DataRowParser.ToString(datos["alergias"]); } } }
private void llenarDatos(DataRow datos) { clave = DataRowParser.ToInt(datos["clave"]); nombre = DataRowParser.ToString(datos["nombre"]); nombreCorto = DataRowParser.ToString(datos["nombrecorto"]); nombreURL = DataRowParser.ToString(datos["nombreurl"]); pagina = DataRowParser.ToString(datos["url"]); primaria = DataRowParser.ToBool(datos["primaria"]); secundaria = DataRowParser.ToBool(datos["secundaria"]); preparatoria = DataRowParser.ToBool(datos["preparatoria"]); universidad = DataRowParser.ToBool(datos["universidad"]); publica = DataRowParser.ToBool(datos["publica"]); if (Archivos.existeArchivo(Archivos.Folder.ESCUELAS, clave + ".png")) { logo = clave + ".png"; } else { logo = Archivos.OMI_LOGO; } }
private static void llenarDatos(DataRow row, OverlayLugares lugares) { lugares.lugar.Add(DataRowParser.ToInt(row["lugar"])); lugares.timestamp.Add(DataRowParser.ToInt(row["timestamp"])); lugares.medalla.Add(DataRowParser.ToInt(row["medalla"])); }
public static void trim(string omi, TipoOlimpiada tipo, int tiempo, int dia = 1) { if (dia > 2) { return; } StringBuilder query = new StringBuilder(); Acceso db = new Acceso(); // Primero obtenemos una lista de todos los timestamps mas grandes query.Append(" select clave, MAX(timestamp) 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(" group by clave "); db.EjecutarQuery(query.ToString()); DataTable table = db.getTable(); foreach (DataRow r in table.Rows) { string clave = DataRowParser.ToString(r[0]); int timestamp = DataRowParser.ToInt(r[1]); // Si el último timestamp es diferente del tiempo que tenemos... if (timestamp != tiempo) { // ...borramos todos las entradas superiores y menores al que tenemos query.Clear(); query.Append(" delete 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(" and clave = "); query.Append(Cadenas.comillas(clave)); query.Append(" and timestamp >= "); query.Append(tiempo); query.Append(" and timestamp <> "); query.Append(timestamp); db.EjecutarQuery(query.ToString()); // ... y actualizamos el que tenemos para que tenga ese timestamp query.Clear(); query.Append(" update DetalleLugar set timestamp = "); query.Append(tiempo); query.Append(" 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(" and clave = "); query.Append(Cadenas.comillas(clave)); query.Append(" and timestamp = "); query.Append(timestamp); db.EjecutarQuery(query.ToString()); } } // Finalmente hacemos lo mismo con dia 2 trim(omi, tipo, tiempo, dia + 1); }
private void llenarDatos(DataRow datos) { numero = DataRowParser.ToString(datos["numero"]); tipoOlimpiada = DataRowParser.ToTipoOlimpiada(datos["clase"]); ciudad = DataRowParser.ToString(datos["ciudad"]); pais = DataRowParser.ToString(datos["pais"]); año = DataRowParser.ToStrictFloat(datos["año"]); inicio = DataRowParser.ToDateTime(datos["inicio"]); fin = DataRowParser.ToDateTime(datos["fin"]); video = DataRowParser.ToString(datos["video"]); poster = DataRowParser.ToString(datos["poster"]); estados = DataRowParser.ToInt(datos["estados"]); participantes = DataRowParser.ToInt(datos["participantes"]); datosPublicos = DataRowParser.ToBool(datos["datospublicos"]); relacion = DataRowParser.ToString(datos["relacion"]); reporte = DataRowParser.ToString(datos["reporte"]); problemasDia1 = DataRowParser.ToInt(datos["problemasDia1"]); problemasDia2 = DataRowParser.ToInt(datos["problemasDia2"]); mostrarResultadosPorDia = DataRowParser.ToBool(datos["mostrarResultadosPorDia"]); mostrarResultadosPorProblema = DataRowParser.ToBool(datos["mostrarResultadosPorProblema"]); mostrarResultadosTotales = DataRowParser.ToBool(datos["mostrarResultadosTotales"]); puntosDesconocidos = DataRowParser.ToBool(datos["puntosDesconocidos"]); alsoOmips = DataRowParser.ToBool(datos["alsoOmips"]); alsoOmipsOnline = DataRowParser.ToBool(datos["alsoOmipsOnline"]); noMedallistasConocidos = DataRowParser.ToBool(datos["noMedallistasConocidos"]); puntosDetallados = DataRowParser.ToBool(datos["puntosDetallados"]); registroActivo = DataRowParser.ToBool(datos["registroActivo"]); diplomasOnline = DataRowParser.ToBool(datos["diplomasOnline"]); esOnline = DataRowParser.ToBool(datos["esOnline"]); registroSedes = DataRowParser.ToBool(datos["registroSedes"]); ordenarPorPuntos = DataRowParser.ToBool(datos["ordenarPorPuntos"]); claveEstado = DataRowParser.ToString(datos["estado"]); Estado estado = Estado.obtenerEstadoConClave(claveEstado); if (estado != null) { nombreEstado = estado.nombre; } claveEscuela = DataRowParser.ToInt(datos["escuela"]); Institucion institucion = Institucion.obtenerInstitucionConClave(claveEscuela); if (institucion != null) { nombreEscuela = institucion.nombreCorto; escuelaURL = institucion.nombreURL; nombreEscuelaCompleto = institucion.nombre; } if (inicio.Year > 1990) { if (inicio.Month == fin.Month) { friendlyDate = "Del " + inicio.Day + " al " + Fechas.friendlyString(fin); } else { friendlyDate = "Del " + Fechas.friendlyString(inicio) + " al " + Fechas.friendlyString(fin); } } if (Archivos.existeArchivo(Archivos.Folder.OLIMPIADAS, numero + ".png")) { logo = numero + ".png"; } else { logo = Archivos.OMI_LOGO; } if (numero != TEMP_CLAVE && (tipoOlimpiada == TipoOlimpiada.OMIP || tipoOlimpiada == TipoOlimpiada.OMIS || tipoOlimpiada == TipoOlimpiada.OMIPO || tipoOlimpiada == TipoOlimpiada.OMISO)) { omisActualNumber = (Int32.Parse(numero) - OMIS_SIN_OMIPS).ToString(); } datosGenerales = Problema.obtenerProblema(numero, tipoOlimpiada, 0, 0); }
private void llenarDatos(DataRow row) { clave = DataRowParser.ToString(row["clave"]); lugar = DataRowParser.ToInt(row["lugar"]); medalla = DataRowParser.ToTipoMedalla(row["medalla"]); }
public void llenarDatos(DataRow datos) { clave = DataRowParser.ToInt(datos["clave"]); nombre = DataRowParser.ToString(datos["nombre"]); }