diff --git a/AideDeJeu/AideDeJeu/ViewModels/StoreViewModel.cs b/AideDeJeu/AideDeJeu/ViewModels/StoreViewModel.cs index 8bf72677..b0b355e1 100644 --- a/AideDeJeu/AideDeJeu/ViewModels/StoreViewModel.cs +++ b/AideDeJeu/AideDeJeu/ViewModels/StoreViewModel.cs @@ -749,47 +749,61 @@ namespace AideDeJeu.ViewModels modelBuilder.Entity().Property(i => i.Family).HasColumnName("Family"); modelBuilder.Entity().Property(i => i.Family).HasColumnName("Family"); - modelBuilder.Entity().Property(i => i.Table).HasColumnName("Table"); - modelBuilder.Entity().Property(i => i.Rarity).HasColumnName("Rarity"); - modelBuilder.Entity().Property(i => i.Type).HasColumnName("Type"); modelBuilder.Entity().Property(i => i.Family).HasColumnName("Family"); - modelBuilder.Entity().Property(i => i.Types).HasColumnName("Types"); - modelBuilder.Entity().Property(i => i.ArmorClass).HasColumnName("ArmorClass"); - modelBuilder.Entity().Property(i => i.SavingThrows).HasColumnName("SavingThrows"); - modelBuilder.Entity().Property(i => i.Skills).HasColumnName("Skills"); - modelBuilder.Entity().Property(i => i.Speed).HasColumnName("Speed"); - modelBuilder.Entity().Property(i => i.Strength).HasColumnName("Strength"); - modelBuilder.Entity().Property(i => i.Type).HasColumnName("Type"); - modelBuilder.Entity().Property(i => i.Family).HasColumnName("Family"); - modelBuilder.Entity().Property(i => i.Types).HasColumnName("Types"); + modelBuilder.Entity().Property(i => i.Family).HasColumnName("Family"); + modelBuilder.Entity().Property(i => i.Family).HasColumnName("Family"); + modelBuilder.Entity().Property(i => i.Family).HasColumnName("Family"); + + modelBuilder.Entity().Property(i => i.Table).HasColumnName("Table"); modelBuilder.Entity().Property(i => i.Table).HasColumnName("Table"); modelBuilder.Entity().Property(i => i.Table).HasColumnName("Table"); modelBuilder.Entity().Property(i => i.Table).HasColumnName("Table"); modelBuilder.Entity().Property(i => i.Table).HasColumnName("Table"); - modelBuilder.Entity().Property(i => i.Alignment).HasColumnName("Alignment"); - modelBuilder.Entity().Property(i => i.Languages).HasColumnName("Languages"); - modelBuilder.Entity().Property(i => i.Size).HasColumnName("Size"); - modelBuilder.Entity().Property(i => i.Speed).HasColumnName("Speed"); - modelBuilder.Entity().Property(i => i.Family).HasColumnName("Family"); + modelBuilder.Entity().Property(i => i.Table).HasColumnName("Table"); + + modelBuilder.Entity().Property(i => i.Type).HasColumnName("Type"); + modelBuilder.Entity().Property(i => i.Type).HasColumnName("Type"); + modelBuilder.Entity().Property(i => i.Type).HasColumnName("Type"); modelBuilder.Entity().Property(i => i.Type).HasColumnName("Type"); + + modelBuilder.Entity().Property(i => i.Types).HasColumnName("Types"); + modelBuilder.Entity().Property(i => i.Types).HasColumnName("Types"); + modelBuilder.Entity().Property(i => i.Types).HasColumnName("Types"); + + modelBuilder.Entity().Property(i => i.Rarity).HasColumnName("Rarity"); + modelBuilder.Entity().Property(i => i.Rarity).HasColumnName("Rarity"); + + modelBuilder.Entity().Property(i => i.ArmorClass).HasColumnName("ArmorClass"); + modelBuilder.Entity().Property(i => i.ArmorClass).HasColumnName("ArmorClass"); + + modelBuilder.Entity().Property(i => i.SavingThrows).HasColumnName("SavingThrows"); + modelBuilder.Entity().Property(i => i.SavingThrows).HasColumnName("SavingThrows"); + + modelBuilder.Entity().Property(i => i.Skills).HasColumnName("Skills"); + modelBuilder.Entity().Property(i => i.Skills).HasColumnName("Skills"); + + modelBuilder.Entity().Property(i => i.Speed).HasColumnName("Speed"); + modelBuilder.Entity().Property(i => i.Speed).HasColumnName("Speed"); + modelBuilder.Entity().Property(i => i.Speed).HasColumnName("Speed"); + + modelBuilder.Entity().Property(i => i.Strength).HasColumnName("Strength"); + modelBuilder.Entity().Property(i => i.Strength).HasColumnName("Strength"); + + modelBuilder.Entity().Property(i => i.Alignment).HasColumnName("Alignment"); + modelBuilder.Entity().Property(i => i.Alignment).HasColumnName("Alignment"); + + modelBuilder.Entity().Property(i => i.Languages).HasColumnName("Languages"); + modelBuilder.Entity().Property(i => i.Languages).HasColumnName("Languages"); + + modelBuilder.Entity().Property(i => i.Size).HasColumnName("Size"); + modelBuilder.Entity().Property(i => i.Size).HasColumnName("Size"); + modelBuilder.Entity().Property(i => i.Classes).HasColumnName("Classes"); modelBuilder.Entity().Property(i => i.Classes).HasColumnName("Classes"); - modelBuilder.Entity().Property(i => i.Family).HasColumnName("Family"); + modelBuilder.Entity().Property(i => i.Sources).HasColumnName("Sources"); - modelBuilder.Entity().Property(i => i.Table).HasColumnName("Table"); - modelBuilder.Entity().Property(i => i.SavingThrows).HasColumnName("SavingThrows"); - modelBuilder.Entity().Property(i => i.Skills).HasColumnName("Skills"); - modelBuilder.Entity().Property(i => i.ArmorClass).HasColumnName("ArmorClass"); - modelBuilder.Entity().Property(i => i.Rarity).HasColumnName("Rarity"); - modelBuilder.Entity().Property(i => i.Speed).HasColumnName("Speed"); - modelBuilder.Entity().Property(i => i.Strength).HasColumnName("Strength"); - modelBuilder.Entity().Property(i => i.Type).HasColumnName("Type"); - modelBuilder.Entity().Property(i => i.Family).HasColumnName("Family"); - modelBuilder.Entity().Property(i => i.Types).HasColumnName("Types"); - modelBuilder.Entity().Property(i => i.Alignment).HasColumnName("Alignment"); - modelBuilder.Entity().Property(i => i.Languages).HasColumnName("Languages"); - modelBuilder.Entity().Property(i => i.Size).HasColumnName("Size"); modelBuilder.Entity().Property(i => i.Sources).HasColumnName("Sources"); + modelBuilder.Entity().HasDiscriminator(i => i.ItemType); } } diff --git a/aidedejeu_flutter/lib/database.dart b/aidedejeu_flutter/lib/database.dart index 55be11b0..29b082ce 100644 --- a/aidedejeu_flutter/lib/database.dart +++ b/aidedejeu_flutter/lib/database.dart @@ -40,8 +40,11 @@ Future getDatabaseInstance() async { Future 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"); } @@ -54,16 +57,18 @@ Future loadChildrenItems(Item item) async { String itemType = item.ItemType.substring(0, item.ItemType.length - 1); String family = ""; - if (item is MonsterItems) { - family = (item as MonsterItems)?.Family ?? ""; + if (item is FilteredItems) { + family = (item as FilteredItems)?.Family ?? ""; } final db = await database; - var response = await db - .query("Items", where: "ItemType = ? AND Family = ?", + var response = await db.query( + "Items", + where: "ItemType = ? AND Family = ?", whereArgs: [itemType, family], - orderBy: "NormalizedName"); + orderBy: "NormalizedName" + ); if (response.isEmpty) { - print("Id not found"); + print("Children not found"); } item.Children = response.isNotEmpty ? itemsFromMapList(response) diff --git a/aidedejeu_flutter/lib/models/items.dart b/aidedejeu_flutter/lib/models/items.dart index 1e8a21ba..8c5eaa3d 100644 --- a/aidedejeu_flutter/lib/models/items.dart +++ b/aidedejeu_flutter/lib/models/items.dart @@ -103,8 +103,23 @@ class MonsterItem extends Item { } } -class MonsterItems extends Item { +class Items extends Item { + + Items.fromMap(Map map) + : super.fromMap(map) { + } +} + +class FilteredItems extends Items { String Family; + + FilteredItems.fromMap(Map map) + : super.fromMap(map) { + this.Family = map["Family"]; + } +} + +class MonsterItems extends FilteredItems { String Type; String Size; String Alignment; @@ -132,7 +147,6 @@ class MonsterItems extends Item { MonsterItems.fromMap(Map map) : super.fromMap(map) { - this.Family = map["Family"]; this.Type = map["Type"]; this.Size = map["Size"]; this.Alignment = map["Alignment"];