Ejemplo n.º 1
0
        private void tryGeneraUsuarioParaSupervisor(string nombre, string correo, string telefono, List <MiembroDelegacion> miembros)
        {
            Persona p = Persona.obtenerPersonaConNombre(nombre);

            if (p == null)
            {
                p = Persona.obtenerPersonaConCorreo(correo);
            }
            // Si no hay persona con ese nombre o correo, creamos una cuenta
            if (p == null)
            {
                p        = new Persona();
                p.nombre = nombre;
                p.breakNombre();
                p.correo  = correo;
                p.celular = telefono;
                p.nuevoUsuario(Archivos.FotoInicial.DOMI);
                p.guardarDatos(lugarGuardado: Persona.LugarGuardado.REGISTRO);
            }

            // Si la persona todavía no es parte de la delegación, la agregamos
            if (!miembros.Any(miembro => miembro.claveUsuario == p.clave))
            {
                MiembroDelegacion md = new MiembroDelegacion();
                md.claveUsuario  = p.clave;
                md.estado        = estado;
                md.tipo          = MiembroDelegacion.TipoAsistente.SUPERVISOR;
                md.tipoOlimpiada = this.tipoOlimpiada;
                md.olimpiada     = omi;
                md.nuevo();
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// A partir de la persona obtenida de la base de datos de la OMI, hacemos la mejor aproximacion
        /// para obtener el objeto deseado
        /// </summary>
        /// <param name="usuario">El usuario obtenido de la base de la OMI</param>
        /// <returns>La persona correspondiente en nuestra base</returns>
        public static Persona obtenerPersonaDeUsuario(Usuario usuario)
        {
            // Primero intentamos aproximar el nombre
            Persona p = Persona.obtenerPersonaConNombre(usuario.Nombre, ignorarUsuarios: true);

            if (p != null)
            {
                return(p);
            }

            // También buscamos por correo
            p = Persona.obtenerPersonaConCorreo(usuario.Email, ignorarUsuarios: true);

            return(p);
        }
Ejemplo n.º 3
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();
            }
        }