Пример #1
0
        /// <summary>
        /// Regresa una lista de las olimpiadas en las que la escuela instanciada
        /// fue la escuela sede
        /// </summary>
        /// <returns>La lista de olimpiadas</returns>
        public List <Olimpiada> obtenerOlimpiadasSede()
        {
            List <Olimpiada> list  = new List <Olimpiada>();
            Acceso           db    = new Acceso();
            StringBuilder    query = new StringBuilder();

            query.Append(" select numero from Olimpiada where escuela = ");
            query.Append(clave);
            query.Append(" and clase = ");
            // Mientras las OMIS y OMIPS no sean aparte, las sedes se cargan de OMIS
            query.Append(Cadenas.comillas(TipoOlimpiada.OMI.ToString().ToLower()));

            db.EjecutarQuery(query.ToString());

            DataTable table = db.getTable();

            if (table.Rows.Count == 0)
            {
                return(list);
            }

            foreach (DataRow r in table.Rows)
            {
                string    numero = DataRowParser.ToString(r[0]);
                Olimpiada o      = Olimpiada.obtenerOlimpiadaConClave(numero, TipoOlimpiada.OMI);
                list.Add(o);
            }

            return(list);
        }
Пример #2
0
        /// <summary>
        /// Calcula los estados de los cuales hay participantes para la persona
        /// </summary>
        /// <param name="tipoOlimpiada">El tipo de olimpiada</param>
        public List <string> consultarEstados(TipoOlimpiada tipoOlimpiada = TipoOlimpiada.NULL)
        {
            List <string> estados = new List <string>();
            Acceso        db      = new Acceso();
            StringBuilder query   = new StringBuilder();

            query.Append(" select distinct(estado) from MiembroDelegacion where persona = ");
            query.Append(this.clave);
            if (tipoOlimpiada != TipoOlimpiada.NULL)
            {
                query.Append(" and clase = ");
                query.Append(Cadenas.comillas(tipoOlimpiada.ToString().ToLower()));
            }

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

            estados = new List <string>();
            foreach (DataRow r in table.Rows)
            {
                string estado = DataRowParser.ToString(r[0]);
                estados.Add(estado);
            }
            return(estados);
        }
Пример #3
0
 private void llenarDatos(DataRow r)
 {
     clave     = DataRowParser.ToInt(r["clave"]);
     log       = DataRowParser.ToString(r["log"]);
     tipo      = DataRowParser.ToTipoLog(r["tipo"]);
     timestamp = DataRowParser.ToLongDateTime(r["timestamp"]);
 }
Пример #4
0
 private void llenarDatos(DataRow r)
 {
     album  = DataRowParser.ToString(r["album"]);
     id     = DataRowParser.ToString(r["id"]);
     orden  = DataRowParser.ToInt(r["orden"]);
     imagen = DataRowParser.ToString(r["imagen"]);
     url    = DataRowParser.ToString(r["url"]);
 }
Пример #5
0
        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;
            }
        }
Пример #6
0
 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"]);
 }
Пример #7
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++;
                }
            }
        }
Пример #8
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"]));
            }
        }
Пример #9
0
        /// <summary>
        /// Calcula las participaciones diferente a competidor que tiene la persona
        /// </summary>
        /// <param name="tipoOlimpiada">El tipo de olimpiada</param>
        public List <string> consultarParticipaciones(TipoOlimpiada tipoOlimpiada = TipoOlimpiada.NULL)
        {
            List <string> tipos = new List <string>();
            Acceso        db    = new Acceso();
            StringBuilder query = new StringBuilder();

            query.Append(" select distinct(tipo) from MiembroDelegacion where persona = ");
            query.Append(this.clave);
            query.Append(" and tipo != ");
            query.Append(Cadenas.comillas(MiembroDelegacion.TipoAsistente.COMPETIDOR.ToString().ToLower()));
            if (tipoOlimpiada != TipoOlimpiada.NULL)
            {
                query.Append(" and clase = ");
                query.Append(Cadenas.comillas(tipoOlimpiada.ToString().ToLower()));
            }
            query.Append(" and clase <> ");
            query.Append(Cadenas.comillas(TipoOlimpiada.OMIPO.ToString().ToLower()));
            query.Append(" and clase <> ");
            query.Append(Cadenas.comillas(TipoOlimpiada.OMISO.ToString().ToLower()));

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

            tipos = new List <string>();
            foreach (DataRow r in table.Rows)
            {
                MiembroDelegacion.TipoAsistente tipo = DataRowParser.ToTipoAsistente(DataRowParser.ToString(r[0]));
                if (tipo == MiembroDelegacion.TipoAsistente.DELELIDER)
                {
                    if (!tipos.Contains(MiembroDelegacion.TipoAsistente.LIDER.ToString()))
                    {
                        tipos.Add(MiembroDelegacion.TipoAsistente.LIDER.ToString());
                    }
                    if (!tipos.Contains(MiembroDelegacion.TipoAsistente.DELEGADO.ToString()))
                    {
                        tipos.Add(MiembroDelegacion.TipoAsistente.DELEGADO.ToString());
                    }
                }
                else
                {
                    string t = MiembroDelegacion.getTipoAsistenteString(tipo);
                    if (!tipos.Contains(t))
                    {
                        tipos.Add(t);
                    }
                }
            }
            return(tipos);
        }
Пример #10
0
        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"]);
        }
Пример #11
0
 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"]);
 }
Пример #12
0
 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"]);
 }
Пример #13
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;
            }
        }
Пример #14
0
        /// <summary>
        /// Obtiene una lista de todas las olimpiadas con albumes de fotos
        /// </summary>
        /// <param name="tipo">El tipo de olimpiada</param>
        /// <returns>La lista de olimpiadas</returns>
        public static HashSet <string> obtenerOlimpiadasConAlbumes(TipoOlimpiada tipo = TipoOlimpiada.OMI)
        {
            HashSet <string> olimpiadas = new HashSet <string>();
            Acceso           db         = new Acceso();
            StringBuilder    query      = new StringBuilder();

            query.Append(" select distinct(olimpiada) from album where clase = ");
            query.Append(Cadenas.comillas(tipo.ToString().ToLower()));

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

            foreach (DataRow row in table.Rows)
            {
                olimpiadas.Add(DataRowParser.ToString(row[0]));
            }

            return(olimpiadas);
        }
Пример #15
0
        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"]);
        }
Пример #16
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);
        }
Пример #17
0
        /// <summary>
        /// Calcula los estados de los cuales hay participantes para la escuela
        /// </summary>
        /// <param name="tipoOlimpiada">El tipo de olimpiada</param>
        private void consultarEstadosDeInstitucion(TipoOlimpiada tipoOlimpiada)
        {
            Acceso        db    = new Acceso();
            StringBuilder query = new StringBuilder();

            query.Append(" select distinct(estado) from MiembroDelegacion where institucion = ");
            query.Append(this.clave);
            query.Append(" and clase = ");
            query.Append(Cadenas.comillas(tipoOlimpiada.ToString().ToLower()));

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

            estados = new List <string>();
            foreach (DataRow r in table.Rows)
            {
                string estado = DataRowParser.ToString(r[0]);
                estados.Add(estado);
            }
        }
Пример #18
0
 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)
     {
     }
 }
Пример #19
0
        public static HashSet <string> obtenerOlimpiadasParaEstado(string estado)
        {
            HashSet <string> lista = new HashSet <string>();

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

            query.Append(" select distinct(olimpiada) from MiembroDelegacion where estado = ");
            query.Append(Cadenas.comillas(estado));

            db.EjecutarQuery(query.ToString());
            DataTable table = db.getTable();
            Dictionary <string, Olimpiada> olimpiadas = getOlimpiadas(TipoOlimpiada.OMI);

            foreach (DataRow r in table.Rows)
            {
                string numero = DataRowParser.ToString(r[0]);
                lista.Add(numero);
            }

            return(lista);
        }
Пример #20
0
        /// <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"]);
                }
            }
        }
Пример #21
0
        /// <summary>
        /// Regresa como un arreglo de strings las claves para las que este delegado puede registrar
        /// competidores
        /// </summary>
        /// <returns>La lista de claves de estado</returns>
        public List <Estado> obtenerEstadosDeDelegado()
        {
            if (this.permisos != TipoPermisos.DELEGADO)
            {
                return(null);
            }
            List <Estado> estados = new List <Estado>();
            Acceso        db      = new Acceso();
            StringBuilder query   = new StringBuilder();

            query.Append(" select distinct(estado) from MiembroDelegacion where persona =");
            query.Append(this.clave);

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

            foreach (DataRow r in table.Rows)
            {
                estados.Add(Estado.obtenerEstadoConClave(DataRowParser.ToString(r[0])));
            }

            return(estados);
        }
Пример #22
0
        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;
            }
        }
Пример #23
0
        /// <summary>
        /// Busca en la base de datos de la OMI quiénes son delegados y les da permisos en este sitio
        /// </summary>
        public static void syncDelegados()
        {
            Acceso        db      = new Acceso();
            StringBuilder query   = new StringBuilder();
            Usuario       usuario = new Usuario();

            query.Append(" select Email, NombreCompleto from ");
            query.Append(tableName("usuarios.vwUsuarios"));
            query.Append(" where idGrupo='DEL'");

            db.EjecutarQuery(query.ToString(), Acceso.BaseDeDatos.OMI);
            DataTable table = db.getTable();

            foreach (DataRow r in table.Rows)
            {
                string correo = DataRowParser.ToString(r[0]);
                string nombre = DataRowParser.ToString(r[1]);

                Persona p = Persona.obtenerPersonaConCorreo(correo);
                if (p == null)
                {
                    p = Persona.obtenerPersonaConNombre(nombre);
                    if (p == null)
                    {
                        // No se encontró persona con nombre o correo, creamos una nueva
                        p        = new Persona();
                        p.nombre = nombre;
                        p.correo = correo;
                        p.breakNombre();
                        p.nuevoUsuario(Archivos.FotoInicial.DOMI);
                    }
                }

                p.permisos = Persona.TipoPermisos.DELEGADO;
                p.guardarDatos();
            }
        }
Пример #24
0
        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);
        }
Пример #25
0
 /// <summary>
 /// Llena los datos de un usuario de la fila mandada como parametro
 /// </summary>
 /// <param name="datos">La fila con el origen de los datos</param>
 private void llenarDatos(DataRow datos)
 {
     Id     = DataRowParser.ToLong(datos["Id"]);
     Email  = DataRowParser.ToString(datos["Email"]);
     Nombre = DataRowParser.ToString(datos["NombreCompleto"]);
 }
Пример #26
0
 public void llenarDatos(DataRow datos)
 {
     clave  = DataRowParser.ToInt(datos["clave"]);
     nombre = DataRowParser.ToString(datos["nombre"]);
 }
Пример #27
0
 private void llenarDatos(DataRow row)
 {
     clave   = DataRowParser.ToString(row["clave"]);
     lugar   = DataRowParser.ToInt(row["lugar"]);
     medalla = DataRowParser.ToTipoMedalla(row["medalla"]);
 }
Пример #28
0
        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);
        }