/// <summary> /// Obtiene el token del usuario. /// </summary> public void GetToken() { // Obtiene token guardado en local token = UserDataDefaults.GetToken(); // Comprueba if (string.IsNullOrWhiteSpace(token)) { GetTokenFromServer(); } }
/// <summary> /// Obtiene el token del servidor. /// </summary> public void GetTokenFromServer() { // Obtengo datos usuario string[] userData = UserDataDefaults.GetLoginData(); // Preparo conexion if (userData != null) { // URI URIData uri = new URIData(uris[(int)URIS.GetToken].Url, uris[(int)URIS.GetToken].Method, uris[(int)URIS.GetToken].Accept, uris[(int)URIS.GetToken].ContentType, uris[(int)URIS.GetToken].Auth); // Action Action <bool, string> complete = null; // Inicializo token = ""; // Añado datos uri.AddData(userData); // Action complete += (arg1, arg2) => { // Compruebo conexion if (arg1) { // Compruebo datos if (!string.IsNullOrWhiteSpace(arg2)) { // Guardo token token = arg2; // Guardo token en local UserDataDefaults.SetToken(arg2); } } lock (l) { Monitor.Pulse(l); } }; // Obtengo datos del servidor Connection(uri, complete); // Espero a que finalice lock (l) { Monitor.Wait(l); } } }
/// <summary> /// Obtiene las tareas de la base de datos. /// </summary> /// <returns>Tareas.</returns> public Tarea[] GetTareas() { // Tareas List <Tarea> tareas = new List <Tarea>(); // Obtengo preferencias Preferencias p = UserDataDefaults.GetPreferences(); // Consulta string c = "SELECT * FROM tarea"; bool flagWhere = false; // Mostrar switch (p.Mostrar) { case 1: // Realizadas c += " WHERE EXISTS(SELECT NULL FROM tarea_realizada WHERE ID_TAREA = tarea.ID)"; flagWhere = true; break; case 2: // Sin realizar c += " WHERE NOT EXISTS(SELECT NULL FROM tarea_realizada WHERE ID_TAREA = tarea.ID)"; flagWhere = true; break; } // Tipo switch (p.Tipo) { case 1: // Urgente if (flagWhere) { c += " AND EXISTS(SELECT TRUE FROM tarea WHERE URGENTE = 1 OR OP2 = 1)"; } else { c += " WHERE EXISTS(SELECT TRUE FROM tarea WHERE URGENTE = 1 OR OP2 = 1)"; } break; case 2: // Normal if (flagWhere) { c += " AND EXISTS(SELECT TRUE FROM tarea WHERE URGENTE = 0 AND OP2 = 0)"; } else { c += " WHERE EXISTS(SELECT TRUE FROM tarea WHERE URGENTE = 0 AND OP2 = 0)"; } break; } // Orden c += " ORDER BY CREACION " + (p.Orden == 0 ? "ASC;" : "DESC;"); // Conexion try { // Bloqueo lock (l) { // Abro conexion connection.Open(); // Crea consulta using (SqliteCommand cmd = connection.CreateCommand()) { cmd.CommandText = c; cmd.CommandType = CommandType.Text; // Realiza consulta using (SqliteDataReader reader = cmd.ExecuteReader()) { // Lee datos while (reader.Read()) { tareas.Add(new Tarea { ID_Tarea = (int)reader[0], Cliente = new Cliente { ID_Cliente = (int)reader[1] }, Tipo = (int)reader[2] == 1, Direccion = new Direccion { ID_Direccion = (int)reader[3] }, Urgente = (int)reader[4] == 1, OP2 = (int)reader[5] == 1, Notas = (string)reader[6], Fecha_creacion = DatetimeToTimestamp((DateTime)reader[7]) }); } } } } } catch (Exception) { return(null); } // Cierro conexion connection.Close(); // Devuelvo tareas return(tareas.Count == 0 ? null : tareas.ToArray()); }