Proyectos de Subversion Iphone Microlearning - Nuevo Interface

Rev

Rev 22 | Rev 25 | Ir a la última revisión | Mostrar el archivo completo | | | Autoría | Ultima modificación | Ver Log |

Rev 22 Rev 23
Línea 26... Línea 26...
26
        
26
        
27
        var query = "SELECT "
27
        var query = "SELECT "
28
        query = query + Constants.TABLE_USER_NOTIFICATION_FIELD_ID + ", "
28
        query = query + Constants.TABLE_USER_NOTIFICATION_FIELD_ID + ", "
29
        query = query + Constants.TABLE_USER_NOTIFICATION_FIELD_USER_UUID + ", "
29
        query = query + Constants.TABLE_USER_NOTIFICATION_FIELD_USER_UUID + ", "
30
        query = query + Constants.TABLE_USER_NOTIFICATION_FIELD_TITLE + ", "
30
        query = query + Constants.TABLE_USER_NOTIFICATION_FIELD_TITLE + ", "
31
        query = query + Constants.TABLE_USER_NOTIFICATION_FIELD_DESCRIPTION + ", "
31
        query = query + Constants.TABLE_USER_NOTIFICATION_FIELD_BODY + ", "
32
        query = query + Constants.TABLE_USER_NOTIFICATION_FIELD_URL + " , "
32
        query = query + Constants.TABLE_USER_NOTIFICATION_FIELD_URL + " , "
-
 
33
        query = query + Constants.TABLE_USER_NOTIFICATION_FIELD_VIEWED + " , "
33
        query = query + Constants.TABLE_USER_NOTIFICATION_FIELD_VIEWED + " , "
34
        query = query + Constants.TABLE_USER_NOTIFICATION_FIELD_DATE_ON + " , "
34
        query = query + Constants.TABLE_USER_NOTIFICATION_FIELD_ADDED_ON
35
        query = query + Constants.TABLE_USER_NOTIFICATION_FIELD_TIME_ON
35
        query = query + " FROM " + Constants.TABLE_USER_NOTIFICATION
36
        query = query + " FROM " + Constants.TABLE_USER_NOTIFICATION
Línea 36... Línea 37...
36
        query = query + " WHERE " + Constants.TABLE_USER_NOTIFICATION_FIELD_ID + " = '\(id)'  LIMIT 1;"
37
        query = query + " WHERE " + Constants.TABLE_USER_NOTIFICATION_FIELD_ID + " = '\(id)'  LIMIT 1;"
Línea 45... Línea 46...
45
                
46
                
Línea 46... Línea 47...
46
                model.userUuid = String(describing: String(cString: sqlite3_column_text(statement, 1)))
47
                model.userUuid = String(describing: String(cString: sqlite3_column_text(statement, 1)))
Línea 47... Línea 48...
47
                
48
                
Línea 48... Línea 49...
48
                model.title = String(describing: String(cString: sqlite3_column_text(statement, 2)))
49
                model.title = String(describing: String(cString: sqlite3_column_text(statement, 2)))
Línea 49... Línea 50...
49
                
50
                
Línea -... Línea 51...
-
 
51
                model.body = String(describing: String(cString: sqlite3_column_text(statement, 3)))
-
 
52
                
50
                model.description = String(describing: String(cString: sqlite3_column_text(statement, 3)))
53
                model.url = String(describing: String(cString: sqlite3_column_text(statement, 4)))
Línea 51... Línea -...
51
                
-
 
Línea 52... Línea 54...
52
                model.description = String(describing: String(cString: sqlite3_column_text(statement, 4)))
54
                
Línea 53... Línea 55...
53
                
55
                model.viewed = Int(sqlite3_column_int(statement, 5))
54
                model.url = String(describing: String(cString: sqlite3_column_text(statement, 5)))
56
                
55
                
57
                model.dateOn = String(describing: String(cString: sqlite3_column_text(statement, 6)))
56
                model.viewed = Int(sqlite3_column_int(statement, 6))
58
                
57
                
59
                model.timeOn = String(describing: String(cString: sqlite3_column_text(statement, 7)))
58
                model.addedOn = String(describing: String(cString: sqlite3_column_text(statement, 7)))
60
                
59
                
61
                
-
 
62
               //print("\nSuccessfully get record")
-
 
63
                
-
 
64
            }
-
 
65
        } else {
-
 
66
            database.printError()
-
 
67
        }
-
 
68
        sqlite3_finalize(statement)
-
 
69
        return model
-
 
70
    }
-
 
71
    
-
 
72
    func selectAllDistinctDateByUserUuid(userUuid : String) -> [String] {
-
 
73
        let db = database.open()
-
 
74
        var records = [String]()
-
 
75
        
-
 
76
        var query = "SELECT "
-
 
77
        query = query + " DISTINCT(" + Constants.TABLE_USER_NOTIFICATION_FIELD_DATE_ON + ") "
-
 
78
        query = query + " FROM " + Constants.TABLE_USER_NOTIFICATION
-
 
79
        query = query + " WHERE " + Constants.TABLE_USER_NOTIFICATION_FIELD_USER_UUID + " = '\(userUuid)'; "
-
 
80
        query = query + " ORDER BY " + Constants.TABLE_USER_NOTIFICATION_FIELD_DATE_ON + " DESC ;"
-
 
81
        
-
 
82
        var statement : OpaquePointer? = nil
-
 
83
        
-
 
84
        
-
 
85
        if (sqlite3_prepare_v2(db, query, -1, &statement, nil) == SQLITE_OK) {
-
 
86
            while (sqlite3_step(statement) == SQLITE_ROW) {
-
 
87
                
-
 
88
                let date = String(describing: String(cString: sqlite3_column_text(statement, 0)))
-
 
89
               
Línea 60... Línea 90...
60
               //print("\nSuccessfully get record")
90
                records.append(date)
61
                
91
                
62
            }
92
            }
Línea 63... Línea 93...
63
        } else {
93
        } else {
64
            database.printError()
94
            database.printError()
65
        }
95
        }
66
        sqlite3_finalize(statement)
96
        sqlite3_finalize(statement)
67
        return model
97
        return records
68
    }
98
    }
69
 
99
 
-
 
100
 
70
 
101
    func selectAllByUserUuidAndDate(userUuid : String, date : String)-> [UserNotificationModel] {
71
    func selectAll()-> [UserNotificationModel] {
102
        let db = database.open()
-
 
103
        var records = [UserNotificationModel]()
-
 
104
        
72
        let db = database.open()
105
        var query = "SELECT "
73
        var records = [UserNotificationModel]()
-
 
-
 
106
        query = query + Constants.TABLE_USER_NOTIFICATION_FIELD_ID + ", "
74
        
107
        query = query + Constants.TABLE_USER_NOTIFICATION_FIELD_USER_UUID + ", "
Línea 75... Línea 108...
75
        var query = "SELECT "
108
        query = query + Constants.TABLE_USER_NOTIFICATION_FIELD_TITLE + ", "
76
        query = query + Constants.TABLE_USER_NOTIFICATION_FIELD_ID + ", "
109
        query = query + Constants.TABLE_USER_NOTIFICATION_FIELD_BODY + ", "
Línea 94... Línea 127...
94
                
127
                
Línea 95... Línea 128...
95
                model.userUuid = String(describing: String(cString: sqlite3_column_text(statement, 1)))
128
                model.userUuid = String(describing: String(cString: sqlite3_column_text(statement, 1)))
Línea 96... Línea 129...
96
                
129
                
Línea 97... Línea 130...
97
                model.title = String(describing: String(cString: sqlite3_column_text(statement, 2)))
130
                model.title = String(describing: String(cString: sqlite3_column_text(statement, 2)))
Línea 98... Línea 131...
98
                
131
                
Línea 99... Línea -...
99
                model.description = String(describing: String(cString: sqlite3_column_text(statement, 3)))
-
 
100
                
-
 
101
                model.description = String(describing: String(cString: sqlite3_column_text(statement, 4)))
132
                model.body = String(describing: String(cString: sqlite3_column_text(statement, 3)))
Línea -... Línea 133...
-
 
133
                
-
 
134
                model.url = String(describing: String(cString: sqlite3_column_text(statement, 4)))
-
 
135
                
Línea 102... Línea 136...
102
                
136
                model.viewed = Int(sqlite3_column_int(statement, 5))
Línea 103... Línea 137...
103
                model.url = String(describing: String(cString: sqlite3_column_text(statement, 5)))
137
                
104
                
138
                model.dateOn = String(describing: String(cString: sqlite3_column_text(statement, 6)))
Línea 117... Línea 151...
117
        return records
151
        return records
118
    }
152
    }
Línea 119... Línea 153...
119
 
153
 
120
    
154
    
121
    
155
    
-
 
156
    func getCountByUserUuid(userUuid : String) -> Int {
Línea 122... Línea 157...
122
    func getCount() -> Int {
157
        let db = database.open()
123
        let db = database.open()
158
        var query = "SELECT COUNT(*) AS total FROM " + Constants.TABLE_USER_NOTIFICATION
Línea 144... Línea 179...
144
        let db = database.open()
179
        let db = database.open()
145
        var result : Int = 0
180
        var result : Int = 0
146
        var query = "INSERT INTO " + Constants.TABLE_USER_NOTIFICATION + " ( "
181
        var query = "INSERT INTO " + Constants.TABLE_USER_NOTIFICATION + " ( "
147
        query = query + Constants.TABLE_USER_NOTIFICATION_FIELD_USER_UUID + ", "
182
        query = query + Constants.TABLE_USER_NOTIFICATION_FIELD_USER_UUID + ", "
148
        query = query + Constants.TABLE_USER_NOTIFICATION_FIELD_TITLE + ", "
183
        query = query + Constants.TABLE_USER_NOTIFICATION_FIELD_TITLE + ", "
149
        query = query + Constants.TABLE_USER_NOTIFICATION_FIELD_DESCRIPTION + ", "
184
        query = query + Constants.TABLE_USER_NOTIFICATION_FIELD_BODY + ", "
150
        query = query + Constants.TABLE_USER_NOTIFICATION_FIELD_URL + ", "
185
        query = query + Constants.TABLE_USER_NOTIFICATION_FIELD_URL + ", "
151
        query = query + Constants.TABLE_USER_NOTIFICATION_FIELD_VIEWED + ", "
186
        query = query + Constants.TABLE_USER_NOTIFICATION_FIELD_VIEWED + ", "
-
 
187
        query = query + Constants.TABLE_USER_NOTIFICATION_FIELD_DATE_ON + ", "
152
        query = query + Constants.TABLE_USER_NOTIFICATION_FIELD_ADDED_ON
188
        query = query + Constants.TABLE_USER_NOTIFICATION_FIELD_TIME_ON
153
        query = query + " ) VALUES (?, ?, ?, ?, ?, ?);"
189
        query = query + " ) VALUES (?, ?, ?, ?, ?, ?, ?);"
154
        var statement : OpaquePointer?
190
        var statement : OpaquePointer?
Línea 155... Línea 191...
155
        
191
        
Línea 156... Línea 192...
156
           
192
           
157
        if (sqlite3_prepare_v2(db, query, -1, &statement, nil) == SQLITE_OK) {
193
        if (sqlite3_prepare_v2(db, query, -1, &statement, nil) == SQLITE_OK) {
158
                   
194
                   
159
            sqlite3_bind_text(statement, 1, userNotification.userUuid, -1, SQLITE_TRANSIENT)
195
            sqlite3_bind_text(statement, 1, userNotification.userUuid, -1, SQLITE_TRANSIENT)
160
            sqlite3_bind_text(statement, 2, userNotification.title, -1 , SQLITE_TRANSIENT)
196
            sqlite3_bind_text(statement, 2, userNotification.title, -1 , SQLITE_TRANSIENT)
-
 
197
            sqlite3_bind_text(statement, 3, userNotification.body , -1, SQLITE_TRANSIENT)
161
            sqlite3_bind_text(statement, 3, userNotification.description , -1, SQLITE_TRANSIENT)
198
            sqlite3_bind_text(statement, 4, userNotification.url , -1, SQLITE_TRANSIENT)
162
            sqlite3_bind_text(statement, 4, userNotification.url , -1, SQLITE_TRANSIENT)
199
            sqlite3_bind_int(statement, 5, Int32(userNotification.viewed))
163
            sqlite3_bind_int(statement, 5, Int32(userNotification.viewed))
200
            sqlite3_bind_text(statement, 6, userNotification.dateOn, -1, SQLITE_TRANSIENT)
164
            sqlite3_bind_text(statement, 6, userNotification.addedOn , -1, SQLITE_TRANSIENT)
201
            sqlite3_bind_text(statement, 7, userNotification.timeOn , -1, SQLITE_TRANSIENT)
165
   
202
            
166
            if (sqlite3_step(statement) == SQLITE_DONE) {
203
            if (sqlite3_step(statement) == SQLITE_DONE) {
Línea 199... Línea 236...
199
            database.printError()
236
            database.printError()
200
        }
237
        }
201
        sqlite3_finalize(statement)
238
        sqlite3_finalize(statement)
202
    }
239
    }
Línea 203... Línea 240...
203
    
240
    
204
    func markViewedAllPending() {
241
    func markViewedAllPendingByUserUuid(userUuid : String) {
205
        let db = database.open()
242
        let db = database.open()
206
        var query = "UPDATE " + Constants.TABLE_USER_NOTIFICATION
243
        var query = "UPDATE " + Constants.TABLE_USER_NOTIFICATION
-
 
244
        query = query + " WHERE " + Constants.TABLE_USER_NOTIFICATION_FIELD_VIEWED + " = 0 "
207
        query = query + " WHERE " + Constants.TABLE_USER_NOTIFICATION_FIELD_VIEWED + " = 0;"
245
        query = query + " AND " + Constants.TABLE_USER_NOTIFICATION_FIELD_USER_UUID + " = '\(userUuid)'; "
208
        var statement : OpaquePointer? = nil
246
        var statement : OpaquePointer? = nil
209
        if (sqlite3_prepare_v2(db, query, -1, &statement, nil) == SQLITE_OK) {
247
        if (sqlite3_prepare_v2(db, query, -1, &statement, nil) == SQLITE_OK) {
210
            if (sqlite3_step(statement) != SQLITE_DONE) {
248
            if (sqlite3_step(statement) != SQLITE_DONE) {
Línea 237... Línea 275...
237
            database.printError()
275
            database.printError()
238
        }
276
        }
239
        sqlite3_finalize(statement)
277
        sqlite3_finalize(statement)
240
    }
278
    }
Línea 241... Línea -...
241
 
-
 
242
    func removeAll() {
-
 
243
        let db = database.open()
-
 
244
        let query = "DELETE FROM " + Constants.TABLE_USER_NOTIFICATION + ";"
-
 
245
        var statement : OpaquePointer? = nil
-
 
246
        if sqlite3_prepare_v2(db, query, -1, &statement, nil) == SQLITE_OK{
-
 
247
            if sqlite3_step(statement) != SQLITE_DONE {
-
 
248
                print("Fallo el borrado de todos los registros en la tabla: \(Constants.TABLE_USER_NOTIFICATION)")
279
 
249
                
-
 
250
                database.printError()
-
 
251
            }
-
 
252
        } else {
-
 
253
            print("No se pudo preparar el borrado de todos los registros en la tabla: \(Constants.TABLE_USER_NOTIFICATION) ")
-
 
254
            
-
 
255
            database.printError()
-
 
256
        }
-
 
257
        sqlite3_finalize(statement)
-
 
Línea 258... Línea 280...
258
    }
280
    
259
    
281
    
260
    func removeAllUserUuidNotEqual(userUuid : String)
282
    func removeAllUserUuidNotEqual(userUuid : String)
261
    {
283
    {