diff --git a/AideDeJeu/AideDeJeu/ViewModels/FilterViewModel.cs b/AideDeJeu/AideDeJeu/ViewModels/FilterViewModel.cs index 0976ca27..4aedcddc 100644 --- a/AideDeJeu/AideDeJeu/ViewModels/FilterViewModel.cs +++ b/AideDeJeu/AideDeJeu/ViewModels/FilterViewModel.cs @@ -6,6 +6,7 @@ using System.Linq; using System.Threading; using System.Threading.Tasks; using System.Windows.Input; +using static AideDeJeu.ViewModels.StoreViewModel; namespace AideDeJeu.ViewModels { @@ -920,19 +921,32 @@ namespace AideDeJeu.ViewModels var type = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Type).SelectedKey ?? ""; var minPrice = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.MinPrice).SelectedKey ?? "0 pc"; var maxPrice = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.MaxPrice).SelectedKey ?? "1 000 000 po"; - //token.ThrowIfCancellationRequested(); - return items.Where(item => + + using (var context = new AideDeJeuContext()) { - var equipment = item as Equipment; - return equipment.Type.ToLower().Contains(type.ToLower()) && + return context.Equipments.Where(equipment => + equipment.Type.ToLower().Contains(type.ToLower()) && priceComparer.Compare(equipment.Price, minPrice) >= 0 && priceComparer.Compare(equipment.Price, maxPrice) <= 0 && ( (Helpers.RemoveDiacritics(equipment.Name).ToLower().Contains(Helpers.RemoveDiacritics(SearchText ?? string.Empty).ToLower())) || (Helpers.RemoveDiacritics(equipment.AltNameText ?? string.Empty).ToLower().Contains(Helpers.RemoveDiacritics(SearchText ?? string.Empty).ToLower())) - ); - }).OrderBy(eq => eq.Name) - .AsEnumerable(); + ) + ).OrderBy(eq => eq.Name) + .ToListAsync(); + } + //return items.Where(item => + //{ + // var equipment = item as Equipment; + // return equipment.Type.ToLower().Contains(type.ToLower()) && + // priceComparer.Compare(equipment.Price, minPrice) >= 0 && + // priceComparer.Compare(equipment.Price, maxPrice) <= 0 && + // ( + // (Helpers.RemoveDiacritics(equipment.Name).ToLower().Contains(Helpers.RemoveDiacritics(SearchText ?? string.Empty).ToLower())) || + // (Helpers.RemoveDiacritics(equipment.AltNameText ?? string.Empty).ToLower().Contains(Helpers.RemoveDiacritics(SearchText ?? string.Empty).ToLower())) + // ); + //}).OrderBy(eq => eq.Name) + // .AsEnumerable(); }, token); } @@ -1023,16 +1037,27 @@ namespace AideDeJeu.ViewModels var type = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Type).SelectedKey ?? ""; var rarity = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Rarity).SelectedKey ?? ""; var attunement = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Attunement).SelectedKey ?? ""; - return items.Where(item => + + using (var context = new AideDeJeuContext()) { - var magicitem = item as MagicItem; - if (magicitem == null) return false; - var matchType = MatchContains(magicitem.Type, type); - var matchRarity = MatchContains(magicitem.Rarity, rarity); - var matchAttunement = MatchContains(magicitem.Attunement, attunement); - var matchSearch = MatchSearch(magicitem); - return matchType && matchRarity && matchAttunement && matchSearch; - }).OrderBy(eq => eq.Name).AsEnumerable(); + return context.MagicItems.Where(magicitem => + MatchContains(magicitem.Type, type) && + MatchContains(magicitem.Rarity, rarity) && + MatchContains(magicitem.Attunement, attunement) && + MatchSearch(magicitem) + ).OrderBy(eq => eq.Name).ToListAsync(); + } + + //return items.Where(item => + //{ + // var magicitem = item as MagicItem; + // if (magicitem == null) return false; + // var matchType = MatchContains(magicitem.Type, type); + // var matchRarity = MatchContains(magicitem.Rarity, rarity); + // var matchAttunement = MatchContains(magicitem.Attunement, attunement); + // var matchSearch = MatchSearch(magicitem); + // return matchType && matchRarity && matchAttunement && matchSearch; + //}).OrderBy(eq => eq.Name).AsEnumerable(); }, token); } diff --git a/AideDeJeu/AideDeJeu/ViewModels/StoreViewModel.cs b/AideDeJeu/AideDeJeu/ViewModels/StoreViewModel.cs index fdb9008b..d33130cb 100644 --- a/AideDeJeu/AideDeJeu/ViewModels/StoreViewModel.cs +++ b/AideDeJeu/AideDeJeu/ViewModels/StoreViewModel.cs @@ -368,6 +368,7 @@ namespace AideDeJeu.ViewModels { public DbSet Items { get; set; } public DbSet Equipments { get; set; } + public DbSet MagicItems { get; set; } public DbSet Spells { get; set; } public DbSet Monsters { get; set; } public DbSet SpellsHD { get; set; } @@ -388,6 +389,8 @@ namespace AideDeJeu.ViewModels modelBuilder.Entity(); modelBuilder.Entity(); modelBuilder.Entity(); + modelBuilder.Entity(); + modelBuilder.Entity(); } } diff --git a/Data/database.db b/Data/database.db index 78d6c851..741991d8 100644 Binary files a/Data/database.db and b/Data/database.db differ