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