mirror of
				https://github.com/Nioux/AideDeJeu.git
				synced 2025-10-30 23:16:09 +00:00 
			
		
		
		
	Suite db
This commit is contained in:
		
							parent
							
								
									2d826d5248
								
							
						
					
					
						commit
						76173fbda3
					
				
					 3 changed files with 58 additions and 37 deletions
				
			
		|  | @ -9,12 +9,14 @@ import 'package:sqflite/sqflite.dart'; | |||
| 
 | ||||
| class SqfliteDB extends BaseDB { | ||||
|   static SqfliteDB _instance; | ||||
| 
 | ||||
|   static SqfliteDB get instance { | ||||
|     if(_instance == null) { | ||||
|     if (_instance == null) { | ||||
|       _instance = SqfliteDB(); | ||||
|     } | ||||
|     return _instance; | ||||
|   } | ||||
| 
 | ||||
|   Database _database; | ||||
| 
 | ||||
|   Future<Database> get database async { | ||||
|  | @ -38,7 +40,7 @@ class SqfliteDB extends BaseDB { | |||
| 
 | ||||
|       ByteData data = await rootBundle.load(join("assets", "library.db")); | ||||
|       List<int> bytes = | ||||
|       data.buffer.asUint8List(data.offsetInBytes, data.lengthInBytes); | ||||
|           data.buffer.asUint8List(data.offsetInBytes, data.lengthInBytes); | ||||
| 
 | ||||
|       await File(path).writeAsBytes(bytes, flush: true); | ||||
|     } else { | ||||
|  | @ -48,25 +50,36 @@ class SqfliteDB extends BaseDB { | |||
|     return await openDatabase(path, readOnly: true); | ||||
|   } | ||||
| 
 | ||||
|   @override | ||||
|   Future<List<Item>> loadAllItems() async { | ||||
|     final db = await database; | ||||
|     var response = await db.query( | ||||
|       "Items", | ||||
|     ); | ||||
|     if (response.isNotEmpty) { | ||||
|       return itemsFromMapList(response); | ||||
|     } | ||||
|     return null; | ||||
|   } | ||||
| 
 | ||||
|   @override | ||||
|   Future<Item> getItemWithId(String id) async { | ||||
|     print("getItemWithId " + id); | ||||
|     final db = await database; | ||||
|     var response = await db.query( | ||||
|         "Items", | ||||
|         where: "Id = ? OR RootId = ?", | ||||
|         whereArgs: [id, id] | ||||
|     ); | ||||
|     var response = await db | ||||
|         .query("Items", where: "Id = ? OR RootId = ?", whereArgs: [id, id]); | ||||
|     if (response.isEmpty) { | ||||
|       print("Id not found"); | ||||
|     } | ||||
|     return response.isNotEmpty ? itemFromMap(response.first) : null; | ||||
|   } | ||||
| 
 | ||||
|   Future<Item> loadChildrenItems(Item item, List<Filters.Filter> filters) async { | ||||
|   @override | ||||
|   Future<Item> loadChildrenItems( | ||||
|       Item item, List<Filters.Filter> filters) async { | ||||
|     print("getChildrenItems " + (item?.itemType ?? "")); | ||||
|     if (item.itemType.endsWith("Items")) { | ||||
|       String itemType = | ||||
|       item.itemType.substring(0, item.itemType.length - 1); | ||||
|       String itemType = item.itemType.substring(0, item.itemType.length - 1); | ||||
|       String family = ""; | ||||
|       if (item is FilteredItems) { | ||||
|         family = item.family ?? ""; | ||||
|  | @ -79,82 +92,74 @@ class SqfliteDB extends BaseDB { | |||
|                 filter.selectedValues.join("%' OR ${filter.name} LIKE '%") + | ||||
|                 "%')"; | ||||
|           } | ||||
|           if (filter.rangeValues != null && (filter.rangeValues.start > 0 || | ||||
|               filter.rangeValues.end < filter.values.length - 1)) { | ||||
|           if (filter.rangeValues != null && | ||||
|               (filter.rangeValues.start > 0 || | ||||
|                   filter.rangeValues.end < filter.values.length - 1)) { | ||||
|             whereFilter = | ||||
|             " AND ([${filter.name}] BETWEEN '${filter.values[filter.rangeValues | ||||
|                 .start.round()]}' AND '${filter.values[filter.rangeValues.end | ||||
|                 .round()]}')"; | ||||
|                 " AND ([${filter.name}] BETWEEN '${filter.values[filter.rangeValues.start.round()]}' AND '${filter.values[filter.rangeValues.end.round()]}')"; | ||||
|           } | ||||
|         }); | ||||
|       } | ||||
|       print(whereFilter); | ||||
|       final db = await database; | ||||
|       var response = await db.query( | ||||
|           "Items", | ||||
|       var response = await db.query("Items", | ||||
|           where: "ItemType = ? AND Family = ?" + whereFilter, | ||||
|           whereArgs: [itemType, family], | ||||
|           orderBy: "NormalizedName" | ||||
|       ); | ||||
|           orderBy: "NormalizedName"); | ||||
|       if (response.isEmpty) { | ||||
|         print("Children not found"); | ||||
|       } | ||||
|       item.children = response.isNotEmpty | ||||
|           ? itemsFromMapList(response) | ||||
|           : null; | ||||
|       item.children = response.isNotEmpty ? itemsFromMapList(response) : null; | ||||
|     } | ||||
|     return item; | ||||
|   } | ||||
| 
 | ||||
|   @override | ||||
|   Future<List<RaceItem>> loadRaces() async { | ||||
|     final db = await database; | ||||
|     var response = await db.query( | ||||
|         "Items", | ||||
|         where: "ItemType = 'RaceItem'", | ||||
|         orderBy: "NormalizedName" | ||||
|     ); | ||||
|     var response = await db.query("Items", | ||||
|         where: "ItemType = 'RaceItem'", orderBy: "NormalizedName"); | ||||
|     if (response.isNotEmpty) { | ||||
|       return itemsFromMapList(response); | ||||
|     } | ||||
|     return null; | ||||
|   } | ||||
| 
 | ||||
|   @override | ||||
|   Future<List<SubRaceItem>> loadSubRaces(RaceItem race) async { | ||||
|     final db = await database; | ||||
|     var response = await db.query( | ||||
|         "Items", | ||||
|     var response = await db.query("Items", | ||||
|         where: "ItemType = 'SubRaceItem' AND ParentLink = ?", | ||||
|         whereArgs: [race.id], | ||||
|         orderBy: "NormalizedName" | ||||
|     ); | ||||
|         orderBy: "NormalizedName"); | ||||
|     if (response.isNotEmpty) { | ||||
|       return itemsFromMapList(response); | ||||
|     } | ||||
|     return null; | ||||
|   } | ||||
| 
 | ||||
|   @override | ||||
|   Future<List<T>> loadTypedItems<T extends Item>( | ||||
|       {String itemType, Item item}) async { | ||||
|     final db = await database; | ||||
|     var response = await db.query( | ||||
|         "Items", | ||||
|     var response = await db.query("Items", | ||||
|         where: "ItemType = ?" + (item != null ? " AND ParentLink = ?" : ""), | ||||
|         whereArgs: item != null ? [itemType, item.id] : [itemType], | ||||
|         orderBy: "NormalizedName" | ||||
|     ); | ||||
|         orderBy: "NormalizedName"); | ||||
|     if (response.isNotEmpty) { | ||||
|       return itemsFromMapList(response); | ||||
|     } | ||||
|     return null; | ||||
|   } | ||||
| 
 | ||||
|   @override | ||||
|   Future<List<BackgroundItem>> loadBackgrounds() async { | ||||
|     return loadTypedItems<BackgroundItem>(itemType: "BackgroundItem"); | ||||
|   } | ||||
| 
 | ||||
|   @override | ||||
|   Future<List<SubBackgroundItem>> loadSubBackgrounds(Item item) async { | ||||
|     return loadTypedItems<SubBackgroundItem>( | ||||
|         itemType: "SubBackgroundItem", item: item); | ||||
|   } | ||||
| 
 | ||||
| } | ||||
| } | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Yan Maniez
						Yan Maniez