1
0
Fork 0
mirror of https://github.com/Nioux/AideDeJeu.git synced 2025-10-31 15:36:07 +00:00

Equipment + magic items

This commit is contained in:
Yan Maniez 2018-10-15 00:05:37 +02:00
parent 4512df905e
commit c05264b191
3 changed files with 44 additions and 16 deletions

View file

@ -6,6 +6,7 @@ using System.Linq;
using System.Threading; using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Windows.Input; using System.Windows.Input;
using static AideDeJeu.ViewModels.StoreViewModel;
namespace AideDeJeu.ViewModels namespace AideDeJeu.ViewModels
{ {
@ -920,19 +921,32 @@ namespace AideDeJeu.ViewModels
var type = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Type).SelectedKey ?? ""; var type = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Type).SelectedKey ?? "";
var minPrice = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.MinPrice).SelectedKey ?? "0 pc"; 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"; 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 context.Equipments.Where(equipment =>
return equipment.Type.ToLower().Contains(type.ToLower()) && equipment.Type.ToLower().Contains(type.ToLower()) &&
priceComparer.Compare(equipment.Price, minPrice) >= 0 && priceComparer.Compare(equipment.Price, minPrice) >= 0 &&
priceComparer.Compare(equipment.Price, maxPrice) <= 0 && priceComparer.Compare(equipment.Price, maxPrice) <= 0 &&
( (
(Helpers.RemoveDiacritics(equipment.Name).ToLower().Contains(Helpers.RemoveDiacritics(SearchText ?? string.Empty).ToLower())) || (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())) (Helpers.RemoveDiacritics(equipment.AltNameText ?? string.Empty).ToLower().Contains(Helpers.RemoveDiacritics(SearchText ?? string.Empty).ToLower()))
); )
}).OrderBy(eq => eq.Name) ).OrderBy(eq => eq.Name)
.AsEnumerable(); .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); }, token);
} }
@ -1023,16 +1037,27 @@ namespace AideDeJeu.ViewModels
var type = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Type).SelectedKey ?? ""; var type = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Type).SelectedKey ?? "";
var rarity = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Rarity).SelectedKey ?? ""; var rarity = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Rarity).SelectedKey ?? "";
var attunement = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Attunement).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; return context.MagicItems.Where(magicitem =>
if (magicitem == null) return false; MatchContains(magicitem.Type, type) &&
var matchType = MatchContains(magicitem.Type, type); MatchContains(magicitem.Rarity, rarity) &&
var matchRarity = MatchContains(magicitem.Rarity, rarity); MatchContains(magicitem.Attunement, attunement) &&
var matchAttunement = MatchContains(magicitem.Attunement, attunement); MatchSearch(magicitem)
var matchSearch = MatchSearch(magicitem); ).OrderBy(eq => eq.Name).ToListAsync();
return matchType && matchRarity && matchAttunement && matchSearch; }
}).OrderBy(eq => eq.Name).AsEnumerable();
//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); }, token);
} }

View file

@ -368,6 +368,7 @@ namespace AideDeJeu.ViewModels
{ {
public DbSet<Item> Items { get; set; } public DbSet<Item> Items { get; set; }
public DbSet<Equipment> Equipments { get; set; } public DbSet<Equipment> Equipments { get; set; }
public DbSet<MagicItem> MagicItems { get; set; }
public DbSet<Spell> Spells { get; set; } public DbSet<Spell> Spells { get; set; }
public DbSet<Monster> Monsters { get; set; } public DbSet<Monster> Monsters { get; set; }
public DbSet<SpellHD> SpellsHD { get; set; } public DbSet<SpellHD> SpellsHD { get; set; }
@ -388,6 +389,8 @@ namespace AideDeJeu.ViewModels
modelBuilder.Entity<MonstersVO>(); modelBuilder.Entity<MonstersVO>();
modelBuilder.Entity<SpellsHD>(); modelBuilder.Entity<SpellsHD>();
modelBuilder.Entity<SpellsVO>(); modelBuilder.Entity<SpellsVO>();
modelBuilder.Entity<Equipments>();
modelBuilder.Entity<MagicItems>();
} }
} }

Binary file not shown.