Proyectos de Subversion Iphone Microlearning - Nuevo Interface

Rev

Rev 44 | Mostrar el archivo completo | | | Autoría | Ultima modificación | Ver Log |

Rev 44 Rev 61
Línea 4... Línea 4...
4
//
4
//
5
//  Created by Efrain Yanez Recanatini on 7/31/22.
5
//  Created by Efrain Yanez Recanatini on 7/31/22.
6
//
6
//
Línea 7... Línea 7...
7
 
7
 
8
 
8
 
Línea 9... Línea 9...
9
import UIKit
9
import SwiftUI
-
 
10
import SQLite3
10
import SQLite3
11
 
11
 
-
 
12
class UserNotificationDao {
-
 
13
    private let SQLITE_TRANSIENT = unsafeBitCast(-1, to: sqlite3_destructor_type.self)
-
 
14
    private var database = Database.sharedInstance
-
 
15
    
-
 
16
    static let sharedInstance: UserNotificationDao = {
-
 
17
           let instance = UserNotificationDao()
-
 
18
           
-
 
Línea 19... Línea 12...
19
           // setup code
12
class UserNotificationDao {
20
           return instance
13
    private var database = Environment(\.database).wrappedValue
21
    }()
14
    private let SQLITE_TRANSIENT = unsafeBitCast(-1, to: sqlite3_destructor_type.self)
Línea 65... Línea 58...
65
                
58
                
Línea 66... Línea 59...
66
               //print("\nSuccessfully get record")
59
               //print("\nSuccessfully get record")
67
                
60
                
68
            }
-
 
-
 
61
            }
69
        } else {
62
        } else {
70
            database.printError()
63
           
71
        }
64
        }
72
        sqlite3_finalize(statement)
65
        sqlite3_finalize(statement)
Línea 93... Línea 86...
93
               
86
               
Línea 94... Línea 87...
94
                records.append(date)
87
                records.append(date)
95
                
88
                
96
            }
-
 
-
 
89
            }
97
        } else {
90
        } else {
98
            database.printError()
91
           
99
        }
92
        }
100
        sqlite3_finalize(statement)
93
        sqlite3_finalize(statement)
Línea 151... Línea 144...
151
                
144
                
Línea 152... Línea 145...
152
                records.append(model)
145
                records.append(model)
153
                
146
                
154
            }
-
 
-
 
147
            }
155
        } else {
148
        } else {
156
            database.printError()
149
           
157
        }
150
        }
158
        sqlite3_finalize(statement)
151
        sqlite3_finalize(statement)
Línea 207... Línea 200...
207
                
200
                
Línea 208... Línea 201...
208
                records.append(model)
201
                records.append(model)
209
                
202
                
210
            }
-
 
-
 
203
            }
211
        } else {
204
        } else {
212
            database.printError()
205
           
213
        }
206
        }
214
        sqlite3_finalize(statement)
207
        sqlite3_finalize(statement)
Línea 233... Línea 226...
233
                count = Int(sqlite3_column_int(statement, 0))
226
                count = Int(sqlite3_column_int(statement, 0))
234
                //print("\(count)")
227
                //print("\(count)")
235
            }
228
            }
236
        } else {
229
        } else {
237
            count = -1
230
            count = -1
238
            database.printError()
-
 
-
 
231
           
239
        }
232
        }
240
        sqlite3_finalize(statement)
233
        sqlite3_finalize(statement)
241
        return count
234
        return count
242
    }
235
    }
Línea 271... Línea 264...
271
            if (sqlite3_step(statement) == SQLITE_DONE) {
264
            if (sqlite3_step(statement) == SQLITE_DONE) {
272
                result = Int(sqlite3_last_insert_rowid(db))
265
                result = Int(sqlite3_last_insert_rowid(db))
273
            } else {
266
            } else {
274
                 print("No se pudo insertar el registro en la tabla: \(Constants.TABLE_USER_NOTIFICATION)")
267
                 print("No se pudo insertar el registro en la tabla: \(Constants.TABLE_USER_NOTIFICATION)")
Línea 275... Línea -...
275
                
-
 
-
 
268
                
Línea 276... Línea 269...
276
                database.printError()
269
               
277
             
270
             
278
            }
271
            }
Línea 279... Línea -...
279
        } else {
-
 
-
 
272
        } else {
280
            print("Fallo la preparación del insertar un registro en la tabla: \(Constants.TABLE_USER_NOTIFICATION)")
273
            print("Fallo la preparación del insertar un registro en la tabla: \(Constants.TABLE_USER_NOTIFICATION)")
Línea 281... Línea 274...
281
            
274
            
Línea 282... Línea 275...
282
            database.printError()
275
           
Línea 295... Línea 288...
295
        var statement : OpaquePointer? = nil
288
        var statement : OpaquePointer? = nil
296
        if (sqlite3_prepare_v2(db, query, -1, &statement, nil) == SQLITE_OK) {
289
        if (sqlite3_prepare_v2(db, query, -1, &statement, nil) == SQLITE_OK) {
297
            if (sqlite3_step(statement) != SQLITE_DONE) {
290
            if (sqlite3_step(statement) != SQLITE_DONE) {
298
                print("No se pudo actualizar un registro en la tabla: \(Constants.TABLE_USER_NOTIFICATION) ")
291
                print("No se pudo actualizar un registro en la tabla: \(Constants.TABLE_USER_NOTIFICATION) ")
Línea 299... Línea -...
299
                
-
 
-
 
292
                
300
                database.printError()
293
               
301
            }
294
            }
302
        } else {
295
        } else {
Línea 303... Línea -...
303
            print("Fallo la preparación de la actualización de un registro en la tabla \(Constants.TABLE_USER_NOTIFICATION) ")
-
 
-
 
296
            print("Fallo la preparación de la actualización de un registro en la tabla \(Constants.TABLE_USER_NOTIFICATION) ")
304
            
297
            
305
            database.printError()
298
           
306
        }
299
        }
Línea 307... Línea 300...
307
        sqlite3_finalize(statement)
300
        sqlite3_finalize(statement)
Línea 316... Línea 309...
316
        var statement : OpaquePointer? = nil
309
        var statement : OpaquePointer? = nil
317
        if (sqlite3_prepare_v2(db, query, -1, &statement, nil) == SQLITE_OK) {
310
        if (sqlite3_prepare_v2(db, query, -1, &statement, nil) == SQLITE_OK) {
318
            if (sqlite3_step(statement) != SQLITE_DONE) {
311
            if (sqlite3_step(statement) != SQLITE_DONE) {
319
                print("No se pudo actualizar un registro en la tabla: \(Constants.TABLE_USER_NOTIFICATION) ")
312
                print("No se pudo actualizar un registro en la tabla: \(Constants.TABLE_USER_NOTIFICATION) ")
Línea 320... Línea -...
320
                
-
 
-
 
313
                
321
                database.printError()
314
               
322
            }
315
            }
323
        } else {
316
        } else {
Línea 324... Línea -...
324
            print("Fallo la preparación de la actualización de un registro en la tabla \(Constants.TABLE_USER_NOTIFICATION) ")
-
 
-
 
317
            print("Fallo la preparación de la actualización de un registro en la tabla \(Constants.TABLE_USER_NOTIFICATION) ")
325
            
318
            
326
            database.printError()
319
           
327
        }
320
        }
Línea 328... Línea 321...
328
        sqlite3_finalize(statement)
321
        sqlite3_finalize(statement)
Línea 338... Línea 331...
338
        var statement : OpaquePointer? = nil
331
        var statement : OpaquePointer? = nil
339
        if (sqlite3_prepare_v2(db, query, -1, &statement, nil) == SQLITE_OK) {
332
        if (sqlite3_prepare_v2(db, query, -1, &statement, nil) == SQLITE_OK) {
340
            if (sqlite3_step(statement) != SQLITE_DONE) {
333
            if (sqlite3_step(statement) != SQLITE_DONE) {
341
                print("No se pudo actualizar un registro en la tabla: \(Constants.TABLE_USER_NOTIFICATION) ")
334
                print("No se pudo actualizar un registro en la tabla: \(Constants.TABLE_USER_NOTIFICATION) ")
Línea 342... Línea -...
342
                
-
 
-
 
335
                
343
                database.printError()
336
               
344
            }
337
            }
345
        } else {
338
        } else {
Línea 346... Línea -...
346
            print("Fallo la preparación de la actualización de un registro en la tabla \(Constants.TABLE_USER_NOTIFICATION) ")
-
 
-
 
339
            print("Fallo la preparación de la actualización de un registro en la tabla \(Constants.TABLE_USER_NOTIFICATION) ")
347
            
340
            
348
            database.printError()
341
           
349
        }
342
        }
Línea 350... Línea 343...
350
        sqlite3_finalize(statement)
343
        sqlite3_finalize(statement)
351
    }
344
    }
-
 
345
    
352
    
346
    
353
    
347
    func removeExpired(userUuid : String)
Línea 354... Línea 348...
354
    func removeExpired(userUuid : String)
348
    {
355
    {
349
        let db = database.open()
Línea 356... Línea 350...
356
        let now = Date()
350
        let now = Date()
Línea 357... Línea -...
357
        let date = Calendar.current.date(byAdding: .day, value: -5, to: now)!
-
 
-
 
351
        let date = Calendar.current.date(byAdding: .day, value: -5, to: now)!
358
        
352
        
359
        
353
        
360
        let dateFormatter = DateFormatter()
354
        let dateFormatter = DateFormatter()
Línea 361... Línea 355...
361
        dateFormatter.dateFormat = Constants.FORMAT_DATE_YMD
355
        dateFormatter.dateFormat = Constants.FORMAT_DATE_YMD
362
        
356
        
363
        let sDate = dateFormatter.string(from: date)
357
        let sDate = dateFormatter.string(from: date)
364
        
358
        
Línea 365... Línea -...
365
        let db = database.open()
-
 
-
 
359
        
366
        var query = "DELETE FROM " + Constants.TABLE_USER_NOTIFICATION
360
        var query = "DELETE FROM " + Constants.TABLE_USER_NOTIFICATION
367
        query = query + " WHERE " + Constants.TABLE_USER_NOTIFICATION_FIELD_USER_UUID + " = '\(userUuid)' "
361
        query = query + " WHERE " + Constants.TABLE_USER_NOTIFICATION_FIELD_USER_UUID + " = '\(userUuid)' "
368
        query = query + " AND " + Constants.TABLE_USER_NOTIFICATION_FIELD_DATE_ON + " < '\(sDate)' "
362
        query = query + " AND " + Constants.TABLE_USER_NOTIFICATION_FIELD_DATE_ON + " < '\(sDate)' "
Línea 369... Línea -...
369
        
-
 
-
 
363
        
370
        var statement : OpaquePointer? = nil
364
        var statement : OpaquePointer? = nil
371
        if (sqlite3_prepare_v2(db, query, -1, &statement, nil) == SQLITE_OK) {
365
        if (sqlite3_prepare_v2(db, query, -1, &statement, nil) == SQLITE_OK) {
Línea 372... Línea 366...
372
            if (sqlite3_step(statement) != SQLITE_DONE) {
366
            if (sqlite3_step(statement) != SQLITE_DONE) {
Línea 391... Línea 385...
391
        var statement : OpaquePointer? = nil
385
        var statement : OpaquePointer? = nil
392
        if (sqlite3_prepare_v2(db, query, -1, &statement, nil) == SQLITE_OK) {
386
        if (sqlite3_prepare_v2(db, query, -1, &statement, nil) == SQLITE_OK) {
393
            if (sqlite3_step(statement) != SQLITE_DONE) {
387
            if (sqlite3_step(statement) != SQLITE_DONE) {
394
                print("No se pudo borrar el registro con el id: \(id) en la tabla: \(Constants.TABLE_USER_NOTIFICATION)")
388
                print("No se pudo borrar el registro con el id: \(id) en la tabla: \(Constants.TABLE_USER_NOTIFICATION)")
Línea 395... Línea -...
395
                
-
 
-
 
389
                
396
                database.printError()
390
               
397
            }
391
            }
398
        } else {
392
        } else {
Línea 399... Línea -...
399
            print("Fallo la preparación del borrado del registro con el id: \(id) en la tabla: \(Constants.TABLE_USER_NOTIFICATION)" )
-
 
-
 
393
            print("Fallo la preparación del borrado del registro con el id: \(id) en la tabla: \(Constants.TABLE_USER_NOTIFICATION)" )
400
            
394
            
401
            database.printError()
395
           
402
        }
396
        }
Línea 414... Línea 408...
414
        if (sqlite3_prepare_v2(db, query, -1, &statement, nil) == SQLITE_OK) {
408
        if (sqlite3_prepare_v2(db, query, -1, &statement, nil) == SQLITE_OK) {
415
            if sqlite3_step(statement) != SQLITE_DONE {
409
            if sqlite3_step(statement) != SQLITE_DONE {
416
                print("No se pudo borrar todos los registros en la tabla: \(Constants.TABLE_USER_NOTIFICATION)" +
410
                print("No se pudo borrar todos los registros en la tabla: \(Constants.TABLE_USER_NOTIFICATION)" +
417
                " de los usuarios diferentes de : \(userUuid)" )
411
                " de los usuarios diferentes de : \(userUuid)" )
Línea 418... Línea -...
418
                
-
 
-
 
412
                
419
                database.printError()
413
               
420
            }
414
            }
421
        } else {
415
        } else {
Línea 422... Línea -...
422
            print("Fallo la preparación de borrar todos los registros en la tabla: \(Constants.TABLE_USER_NOTIFICATION) de los usuarios diferentes de : \(userUuid) ")
-
 
-
 
416
            print("Fallo la preparación de borrar todos los registros en la tabla: \(Constants.TABLE_USER_NOTIFICATION) de los usuarios diferentes de : \(userUuid) ")
423
            
417
            
424
            database.printError()
418
           
425
        }
419
        }
Línea 426... Línea 420...
426
        sqlite3_finalize(statement)
420
        sqlite3_finalize(statement)