Proyectos de Subversion Iphone Microlearning - Nuevo Interface

Rev

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

Rev 26 Rev 61
Línea 3... Línea 3...
3
//  twogetskills
3
//  twogetskills
4
//
4
//
5
//  Created by Efrain Yanez Recanatini on 2/21/22.
5
//  Created by Efrain Yanez Recanatini on 2/21/22.
6
//
6
//
Línea 7... Línea 7...
7
 
7
 
8
import UIKit
8
import SwiftUI
Línea 9... Línea 9...
9
import SQLite3
9
import SQLite3
-
 
10
 
10
 
11
class ProgressDao {
11
class ProgressDao {
-
 
Línea 12... Línea -...
12
    private let SQLITE_TRANSIENT = unsafeBitCast(-1, to: sqlite3_destructor_type.self)
-
 
13
    private var database = Database.sharedInstance
-
 
14
    
12
    private var database = Environment(\.database).wrappedValue
15
    static let sharedInstance: ProgressDao = {
-
 
16
           let instance = ProgressDao()
-
 
17
           
-
 
18
           // setup code
-
 
19
           return instance
13
    private let SQLITE_TRANSIENT = unsafeBitCast(-1, to: sqlite3_destructor_type.self)
20
    }()
14
    
21
 
15
    
22
    func selectByTopicUuid(topicUuid: String)-> ProgressModel {
16
    func selectByTopicUuid(topicUuid: String)-> ProgressModel {
23
        let db = database.open()
17
        let db = database.open()
Línea 62... Línea 56...
62
                model.completed = Int(sqlite3_column_int(statement, 12))
56
                model.completed = Int(sqlite3_column_int(statement, 12))
63
                model.addedOn = String(describing: String(cString: sqlite3_column_text(statement, 13)))
57
                model.addedOn = String(describing: String(cString: sqlite3_column_text(statement, 13)))
64
                model.updatedOn = String(describing: String(cString: sqlite3_column_text(statement, 14)))
58
                model.updatedOn = String(describing: String(cString: sqlite3_column_text(statement, 14)))
65
            }
59
            }
66
        } else {
60
        } else {
67
            database.printError()
-
 
-
 
61
           
68
        }
62
        }
69
        sqlite3_finalize(statement)
63
        sqlite3_finalize(statement)
70
        return model
64
        return model
71
    }
65
    }
Línea 115... Línea 109...
115
                model.completed = Int(sqlite3_column_int(statement, 12))
109
                model.completed = Int(sqlite3_column_int(statement, 12))
116
                model.addedOn = String(describing: String(cString: sqlite3_column_text(statement, 13)))
110
                model.addedOn = String(describing: String(cString: sqlite3_column_text(statement, 13)))
117
                model.updatedOn = String(describing: String(cString: sqlite3_column_text(statement, 14)))
111
                model.updatedOn = String(describing: String(cString: sqlite3_column_text(statement, 14)))
118
            }
112
            }
119
        } else {
113
        } else {
120
            database.printError()
-
 
-
 
114
           
121
        }
115
        }
122
        sqlite3_finalize(statement)
116
        sqlite3_finalize(statement)
123
        return model
117
        return model
124
    }
118
    }
Línea 169... Línea 163...
169
                model.addedOn = String(describing: String(cString: sqlite3_column_text(statement, 13)))
163
                model.addedOn = String(describing: String(cString: sqlite3_column_text(statement, 13)))
170
                model.updatedOn = String(describing: String(cString: sqlite3_column_text(statement, 14)))
164
                model.updatedOn = String(describing: String(cString: sqlite3_column_text(statement, 14)))
Línea 171... Línea 165...
171
                
165
                
172
            }
166
            }
173
        } else {
-
 
-
 
167
        } else {
174
            database.printError()
168
           
175
        }
169
        }
176
        sqlite3_finalize(statement)
170
        sqlite3_finalize(statement)
Línea 177... Línea 171...
177
        return model
171
        return model
Línea 224... Línea 218...
224
                model.addedOn = String(describing: String(cString: sqlite3_column_text(statement, 13)))
218
                model.addedOn = String(describing: String(cString: sqlite3_column_text(statement, 13)))
225
                model.updatedOn = String(describing: String(cString: sqlite3_column_text(statement, 14)))
219
                model.updatedOn = String(describing: String(cString: sqlite3_column_text(statement, 14)))
Línea 226... Línea 220...
226
                
220
                
227
            }
221
            }
228
        } else {
-
 
-
 
222
        } else {
229
            database.printError()
223
           
230
        }
224
        }
231
        sqlite3_finalize(statement)
225
        sqlite3_finalize(statement)
Línea 232... Línea 226...
232
        return model
226
        return model
Línea 277... Línea 271...
277
                model.completed = Int(sqlite3_column_int(statement, 12))
271
                model.completed = Int(sqlite3_column_int(statement, 12))
278
                model.addedOn = String(describing: String(cString: sqlite3_column_text(statement, 13)))
272
                model.addedOn = String(describing: String(cString: sqlite3_column_text(statement, 13)))
279
                model.updatedOn = String(describing: String(cString: sqlite3_column_text(statement, 14)))
273
                model.updatedOn = String(describing: String(cString: sqlite3_column_text(statement, 14)))
280
            }
274
            }
281
        } else {
275
        } else {
282
            database.printError()
-
 
-
 
276
           
283
        }
277
        }
284
        sqlite3_finalize(statement)
278
        sqlite3_finalize(statement)
285
        return model
279
        return model
286
    }
280
    }
Línea 331... Línea 325...
331
                model.completed = Int(sqlite3_column_int(statement, 12))
325
                model.completed = Int(sqlite3_column_int(statement, 12))
332
                model.addedOn = String(describing: String(cString: sqlite3_column_text(statement, 13)))
326
                model.addedOn = String(describing: String(cString: sqlite3_column_text(statement, 13)))
333
                model.updatedOn = String(describing: String(cString: sqlite3_column_text(statement, 14)))
327
                model.updatedOn = String(describing: String(cString: sqlite3_column_text(statement, 14)))
334
            }
328
            }
335
        } else {
329
        } else {
336
            database.printError()
-
 
-
 
330
           
337
        }
331
        }
338
        sqlite3_finalize(statement)
332
        sqlite3_finalize(statement)
339
        return model
333
        return model
340
    }
334
    }
Línea 356... Línea 350...
356
            if(sqlite3_step(statement) == SQLITE_ROW){
350
            if(sqlite3_step(statement) == SQLITE_ROW){
357
                count = Int(sqlite3_column_int(statement, 0))
351
                count = Int(sqlite3_column_int(statement, 0))
Línea 358... Línea 352...
358
                
352
                
359
            }
353
            }
360
        } else {
-
 
-
 
354
        } else {
361
            database.printError()
355
           
362
        }
356
        }
363
        sqlite3_finalize(statement)
357
        sqlite3_finalize(statement)
364
        return count;
358
        return count;
Línea 381... Línea 375...
381
            if(sqlite3_step(statement) == SQLITE_ROW){
375
            if(sqlite3_step(statement) == SQLITE_ROW){
382
                count = Int(sqlite3_column_int(statement, 0))
376
                count = Int(sqlite3_column_int(statement, 0))
Línea 383... Línea 377...
383
                
377
                
384
            }
378
            }
385
        } else {
-
 
-
 
379
        } else {
386
            database.printError()
380
           
387
        }
381
        }
388
        sqlite3_finalize(statement)
382
        sqlite3_finalize(statement)
389
        return count;
383
        return count;
Línea 404... Línea 398...
404
            if(sqlite3_step(statement) == SQLITE_ROW){
398
            if(sqlite3_step(statement) == SQLITE_ROW){
405
                count = Int(sqlite3_column_int(statement, 0))
399
                count = Int(sqlite3_column_int(statement, 0))
406
                //print("\(count)")
400
                //print("\(count)")
407
            }
401
            }
408
        } else {
402
        } else {
409
            database.printError()
-
 
-
 
403
           
410
        }
404
        }
411
        sqlite3_finalize(statement)
405
        sqlite3_finalize(statement)
412
        return count
406
        return count
413
    }
407
    }
Línea 427... Línea 421...
427
            if(sqlite3_step(statement) == SQLITE_ROW){
421
            if(sqlite3_step(statement) == SQLITE_ROW){
428
                count = Int(sqlite3_column_int(statement, 0))
422
                count = Int(sqlite3_column_int(statement, 0))
429
                //print("\(count)")
423
                //print("\(count)")
430
            }
424
            }
431
        } else {
425
        } else {
432
            database.printError()
-
 
-
 
426
           
433
        }
427
        }
434
        sqlite3_finalize(statement)
428
        sqlite3_finalize(statement)
435
        return count
429
        return count
436
    }
430
    }
Línea 450... Línea 444...
450
            if(sqlite3_step(statement) == SQLITE_ROW){
444
            if(sqlite3_step(statement) == SQLITE_ROW){
451
                count = Int(sqlite3_column_int(statement, 0))
445
                count = Int(sqlite3_column_int(statement, 0))
452
                //print("\(count)")
446
                //print("\(count)")
453
            }
447
            }
454
        } else {
448
        } else {
455
            database.printError()
-
 
-
 
449
           
456
        }
450
        }
457
        sqlite3_finalize(statement)
451
        sqlite3_finalize(statement)
458
        return count
452
        return count
459
    }
453
    }
Línea 474... Línea 468...
474
            if(sqlite3_step(statement) == SQLITE_ROW){
468
            if(sqlite3_step(statement) == SQLITE_ROW){
475
                count = Int(sqlite3_column_int(statement, 0))
469
                count = Int(sqlite3_column_int(statement, 0))
476
                //print("\(count)")
470
                //print("\(count)")
477
            }
471
            }
478
        } else {
472
        } else {
479
            database.printError()
-
 
-
 
473
           
480
        }
474
        }
481
        sqlite3_finalize(statement)
475
        sqlite3_finalize(statement)
482
        return count
476
        return count
483
    }
477
    }
Línea 498... Línea 492...
498
            if(sqlite3_step(statement) == SQLITE_ROW){
492
            if(sqlite3_step(statement) == SQLITE_ROW){
499
                count = Int(sqlite3_column_int(statement, 0))
493
                count = Int(sqlite3_column_int(statement, 0))
500
                //print("\(count)")
494
                //print("\(count)")
501
            }
495
            }
502
        } else {
496
        } else {
503
            database.printError()
-
 
-
 
497
           
504
        }
498
        }
505
        sqlite3_finalize(statement)
499
        sqlite3_finalize(statement)
506
        return count
500
        return count
507
    }
501
    }
Línea 522... Línea 516...
522
            if(sqlite3_step(statement) == SQLITE_ROW){
516
            if(sqlite3_step(statement) == SQLITE_ROW){
523
                count = Int(sqlite3_column_int(statement, 0))
517
                count = Int(sqlite3_column_int(statement, 0))
524
                //print("\(count)")
518
                //print("\(count)")
525
            }
519
            }
526
        } else {
520
        } else {
527
            database.printError()
-
 
-
 
521
           
528
        }
522
        }
529
        sqlite3_finalize(statement)
523
        sqlite3_finalize(statement)
530
        return count
524
        return count
531
    }
525
    }
Línea 546... Línea 540...
546
            if(sqlite3_step(statement) == SQLITE_ROW){
540
            if(sqlite3_step(statement) == SQLITE_ROW){
547
                count = Int(sqlite3_column_int(statement, 0))
541
                count = Int(sqlite3_column_int(statement, 0))
548
                //print("\(count)")
542
                //print("\(count)")
549
            }
543
            }
550
        } else {
544
        } else {
551
            database.printError()
-
 
-
 
545
           
552
        }
546
        }
553
        sqlite3_finalize(statement)
547
        sqlite3_finalize(statement)
554
        return count
548
        return count
555
    }
549
    }
Línea 594... Línea 588...
594
            sqlite3_bind_text(statement, 13, record.addedOn, -1, SQLITE_TRANSIENT)
588
            sqlite3_bind_text(statement, 13, record.addedOn, -1, SQLITE_TRANSIENT)
595
            sqlite3_bind_text(statement, 14, record.updatedOn, -1, SQLITE_TRANSIENT)
589
            sqlite3_bind_text(statement, 14, record.updatedOn, -1, SQLITE_TRANSIENT)
Línea 596... Línea 590...
596
            
590
            
597
           if sqlite3_step(statement) != SQLITE_DONE {
591
           if sqlite3_step(statement) != SQLITE_DONE {
598
                print("No se pudo insertar un registro en la tabla: \(Constants.TABLE_PROGRESS)")
-
 
-
 
592
                print("No se pudo insertar un registro en la tabla: \(Constants.TABLE_PROGRESS)")
Línea 599... Línea 593...
599
                database.printError()
593
               
600
               
594
               
601
           } else {
595
           } else {
602
             print("insertamos un registro de progreso")
596
             print("insertamos un registro de progreso")
603
           }
597
           }
604
        } else {
-
 
-
 
598
        } else {
605
            print("No se pudo preparar insertar un registro en la tabla: \(Constants.TABLE_PROGRESS)")
599
            print("No se pudo preparar insertar un registro en la tabla: \(Constants.TABLE_PROGRESS)")
Línea 606... Línea 600...
606
            database.printError()
600
           
607
        }
601
        }
Línea 624... Línea 618...
624
        
618
        
625
        var statement : OpaquePointer? = nil
619
        var statement : OpaquePointer? = nil
626
        if (sqlite3_prepare_v2(db, query, -1, &statement, nil) == SQLITE_OK) {
620
        if (sqlite3_prepare_v2(db, query, -1, &statement, nil) == SQLITE_OK) {
627
            if sqlite3_step(statement) != SQLITE_DONE {
621
            if sqlite3_step(statement) != SQLITE_DONE {
628
                print("No se pudo actualizar un registro en la tabla: \(Constants.TABLE_PROGRESS)")
-
 
-
 
622
                print("No se pudo actualizar un registro en la tabla: \(Constants.TABLE_PROGRESS)")
629
                database.printError()
623
               
630
            }
624
            }
631
        } else {
625
        } else {
632
            print("Fallo la preparación de actualizar un registro en la tabla: \(Constants.TABLE_PROGRESS)")
-
 
-
 
626
            print("Fallo la preparación de actualizar un registro en la tabla: \(Constants.TABLE_PROGRESS)")
633
            database.printError()
627
           
634
        }
628
        }
635
        sqlite3_finalize(statement)
629
        sqlite3_finalize(statement)
Línea 636... Línea 630...
636
    }
630
    }
Línea 640... Línea 634...
640
        let query = "DELETE FROM " +  Constants.TABLE_PROGRESS + " WHERE " +  Constants.TABLE_PROGRESS_FIELD_ID + " = " + "\(id) ;"
634
        let query = "DELETE FROM " +  Constants.TABLE_PROGRESS + " WHERE " +  Constants.TABLE_PROGRESS_FIELD_ID + " = " + "\(id) ;"
641
        var statement : OpaquePointer? = nil
635
        var statement : OpaquePointer? = nil
642
        if (sqlite3_prepare_v2(db, query, -1, &statement, nil) == SQLITE_OK) {
636
        if (sqlite3_prepare_v2(db, query, -1, &statement, nil) == SQLITE_OK) {
643
            if sqlite3_step(statement) != SQLITE_DONE {
637
            if sqlite3_step(statement) != SQLITE_DONE {
644
                print("No se pudo borrar un registro con el id: \(id) en la tabla: \(Constants.TABLE_PROGRESS)")
638
                print("No se pudo borrar un registro con el id: \(id) en la tabla: \(Constants.TABLE_PROGRESS)")
645
                database.printError()
-
 
-
 
639
               
646
            }
640
            }
647
        } else {
641
        } else {
648
            print("Fallo la preparación de borrar un registro con el id: \(id) en la tabla: \(Constants.TABLE_PROGRESS)")
642
            print("Fallo la preparación de borrar un registro con el id: \(id) en la tabla: \(Constants.TABLE_PROGRESS)")
649
            database.printError()
-
 
-
 
643
           
650
        }
644
        }
651
        sqlite3_finalize(statement)
645
        sqlite3_finalize(statement)
652
    }
646
    }
Línea 653... Línea 647...
653
 
647
 
Línea 656... Línea 650...
656
        let query = "DELETE FROM " +  Constants.TABLE_PROGRESS + ";"
650
        let query = "DELETE FROM " +  Constants.TABLE_PROGRESS + ";"
657
        var statement : OpaquePointer? = nil
651
        var statement : OpaquePointer? = nil
658
        if (sqlite3_prepare_v2(db, query, -1, &statement, nil) == SQLITE_OK) {
652
        if (sqlite3_prepare_v2(db, query, -1, &statement, nil) == SQLITE_OK) {
659
            if sqlite3_step(statement) != SQLITE_DONE {
653
            if sqlite3_step(statement) != SQLITE_DONE {
660
                print("No se pudo borrar todos los registros en la tabla: \(Constants.TABLE_PROGRESS)")
654
                print("No se pudo borrar todos los registros en la tabla: \(Constants.TABLE_PROGRESS)")
661
                database.printError()
-
 
-
 
655
               
662
            }
656
            }
663
        } else {
657
        } else {
664
            print("Fallo la preparación de borrar todos los registros en la tabla: \(Constants.TABLE_PROGRESS)")
658
            print("Fallo la preparación de borrar todos los registros en la tabla: \(Constants.TABLE_PROGRESS)")
665
            database.printError()
-
 
-
 
659
           
666
        }
660
        }
667
        sqlite3_finalize(statement)
661
        sqlite3_finalize(statement)
668
    }
662
    }
Línea 669... Línea 663...
669
    
663
    
Línea 675... Línea 669...
675
        var statement : OpaquePointer? = nil
669
        var statement : OpaquePointer? = nil
676
        if (sqlite3_prepare_v2(db, query, -1, &statement, nil) == SQLITE_OK) {
670
        if (sqlite3_prepare_v2(db, query, -1, &statement, nil) == SQLITE_OK) {
677
            if sqlite3_step(statement) != SQLITE_DONE {
671
            if sqlite3_step(statement) != SQLITE_DONE {
678
                print("No se pudo borrar todos los registros en la tabla: \(Constants.TABLE_PROGRESS)" +
672
                print("No se pudo borrar todos los registros en la tabla: \(Constants.TABLE_PROGRESS)" +
679
                " de los usuarios diferentes de : \(userUuid)" )
673
                " de los usuarios diferentes de : \(userUuid)" )
680
                database.printError()
-
 
-
 
674
               
681
            }
675
            }
682
        } else {
676
        } else {
683
            print("Fallo la preparación de borrar todos los registros en la tabla: \(Constants.TABLE_PROGRESS) de los usuarios diferentes de : \(userUuid) ")
677
            print("Fallo la preparación de borrar todos los registros en la tabla: \(Constants.TABLE_PROGRESS) de los usuarios diferentes de : \(userUuid) ")
684
            database.printError()
-
 
-
 
678
           
685
        }
679
        }
686
        sqlite3_finalize(statement)
680
        sqlite3_finalize(statement)
687
    }
681
    }
Línea 688... Línea 682...
688
 
682