From 184994c0d8f186bbe6ffbf0192fbc8c82584064d Mon Sep 17 00:00:00 2001 From: Yan Maniez Date: Fri, 18 May 2018 20:02:51 +0200 Subject: [PATCH] =?UTF-8?q?D=C3=A9but=20utilisation=20bdd=20pour=20les=20m?= =?UTF-8?q?onstres=20+=20optim=20/=20correction?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AideDeJeu/Services/ItemDatabaseHelper.cs | 7 +- .../AideDeJeu/ViewModels/MonstersViewModel.cs | 114 ++++++++++++------ .../AideDeJeu/ViewModels/SpellsViewModel.cs | 50 +++++--- 3 files changed, 118 insertions(+), 53 deletions(-) diff --git a/AideDeJeu/AideDeJeu/Services/ItemDatabaseHelper.cs b/AideDeJeu/AideDeJeu/Services/ItemDatabaseHelper.cs index 3034a54b..0456b2c9 100644 --- a/AideDeJeu/AideDeJeu/Services/ItemDatabaseHelper.cs +++ b/AideDeJeu/AideDeJeu/Services/ItemDatabaseHelper.cs @@ -52,13 +52,18 @@ namespace AideDeJeu.Services } } - public async Task> GetMonstersAsync() + public async Task> GetMonstersAsync(string category, string type, string minPower, string maxPower, string size, string legendary, string source) { using (var context = CreateContext()) { //We use OrderByDescending because Posts are generally displayed from most recent to oldest return await context.Monsters .AsNoTracking() + .Where(monster => + monster.Type.Contains(type) && + //("[" + monster.Size.Trim().ToUpper() + "]").Contains("[" + size.ToUpper() + "]") && + monster.Source.Contains(source) + ) .OrderByDescending(monster => monster.Id) .ToListAsync(); } diff --git a/AideDeJeu/AideDeJeu/ViewModels/MonstersViewModel.cs b/AideDeJeu/AideDeJeu/ViewModels/MonstersViewModel.cs index 9441e367..f90a24da 100644 --- a/AideDeJeu/AideDeJeu/ViewModels/MonstersViewModel.cs +++ b/AideDeJeu/AideDeJeu/ViewModels/MonstersViewModel.cs @@ -1,4 +1,5 @@ -using AideDeJeu.Tools; +using AideDeJeu.Services; +using AideDeJeu.Tools; using AideDeJeuLib; using AideDeJeuLib.Monsters; using System; @@ -41,19 +42,35 @@ namespace AideDeJeu.ViewModels public List> Powers { get; set; } = new List>() { - new KeyValuePair("Z", "0" ), - new KeyValuePair(".12", "1/8" ), - new KeyValuePair(".25", "1/4" ), - new KeyValuePair(".5", "1/2" ), - new KeyValuePair("1", "1" ), - new KeyValuePair("2", "2" ), - new KeyValuePair("4", "4" ), - new KeyValuePair("6", "6" ), - new KeyValuePair("8", "8" ), - new KeyValuePair("10", "10" ), - new KeyValuePair("15", "15" ), - new KeyValuePair("20", "20" ), - new KeyValuePair("30", "30" ), + new KeyValuePair(" 0 (0 PX)", "0" ), + new KeyValuePair(" 1/8 (25 PX)", "1/8" ), + new KeyValuePair(" 1/4 (50 PX)", "1/4" ), + new KeyValuePair(" 1/2 (100 PX)", "1/2" ), + new KeyValuePair(" 1 (200 PX)", "1" ), + new KeyValuePair(" 2 (450 PX)", "2" ), + new KeyValuePair(" 3 (700 PX)", "3" ), + new KeyValuePair(" 4 (1100 PX)", "4" ), + new KeyValuePair(" 5 (1800 PX)", "5" ), + new KeyValuePair(" 6 (2300 PX)", "6" ), + new KeyValuePair(" 7 (2900 PX)", "7" ), + new KeyValuePair(" 8 (3900 PX)", "8" ), + new KeyValuePair(" 9 (5000 PX)", "9" ), + new KeyValuePair(" 10 (5900 PX)", "10" ), + new KeyValuePair(" 11 (7200 PX)", "11" ), + new KeyValuePair(" 12 (8400 PX)", "12" ), + new KeyValuePair(" 13 (10000 PX)", "13" ), + new KeyValuePair(" 14 (11500 PX)", "14" ), + new KeyValuePair(" 15 (13000 PX)", "15" ), + new KeyValuePair(" 16 (15000 PX)", "16" ), + new KeyValuePair(" 17 (18000 PX)", "17" ), + new KeyValuePair(" 18 (20000 PX)", "18" ), + new KeyValuePair(" 19 (22000 PX)", "19" ), + new KeyValuePair(" 20 (25000 PX)", "20" ), + new KeyValuePair(" 21 (33000 PX)", "21" ), + new KeyValuePair(" 22 (41000 PX)", "22" ), + new KeyValuePair(" 23 (50000 PX)", "23" ), + new KeyValuePair(" 24 (62000 PX)", "24" ), + new KeyValuePair(" 30 (155000 PX)", "30" ), }; public List> Sizes { get; set; } = new List>() @@ -77,8 +94,8 @@ namespace AideDeJeu.ViewModels public List> Sources { get; set; } = new List>() { new KeyValuePair("", "Toutes"), - new KeyValuePair("srd", "SRD"), - new KeyValuePair("mm", "MM"), + new KeyValuePair("(SRD)", "SRD"), + new KeyValuePair("Monster Manual", "MM"), new KeyValuePair("sup", "VGtM, MToF"), new KeyValuePair("supno", "AL, AideDD"), }; @@ -92,8 +109,11 @@ namespace AideDeJeu.ViewModels } set { - SetProperty(ref _Category, value); - LoadItemsCommand.Execute(null); + if (_Category != value) + { + SetProperty(ref _Category, value); + LoadItemsCommand.Execute(null); + } } } private int _Type = 0; @@ -105,8 +125,11 @@ namespace AideDeJeu.ViewModels } set { - SetProperty(ref _Type, value); - LoadItemsCommand.Execute(null); + if (_Type != value) + { + SetProperty(ref _Type, value); + LoadItemsCommand.Execute(null); + } } } private int _MinPower = 0; @@ -118,15 +141,18 @@ namespace AideDeJeu.ViewModels } set { - SetProperty(ref _MinPower, value); - if (_MaxPower < _MinPower) + if (_MinPower != value) { - SetProperty(ref _MaxPower, value, nameof(MaxPower)); + SetProperty(ref _MinPower, value); + if (_MaxPower < _MinPower) + { + SetProperty(ref _MaxPower, value, nameof(MaxPower)); + } + LoadItemsCommand.Execute(null); } - LoadItemsCommand.Execute(null); } } - private int _MaxPower = 11; + private int _MaxPower = 18; public int MaxPower { get @@ -135,12 +161,15 @@ namespace AideDeJeu.ViewModels } set { - SetProperty(ref _MaxPower, value); - if (_MaxPower < _MinPower) + if (_MaxPower != value) { - SetProperty(ref _MinPower, value, nameof(MinPower)); + SetProperty(ref _MaxPower, value); + if (_MaxPower < _MinPower) + { + SetProperty(ref _MinPower, value, nameof(MinPower)); + } + LoadItemsCommand.Execute(null); } - LoadItemsCommand.Execute(null); } } private int _Size = 0; @@ -152,8 +181,11 @@ namespace AideDeJeu.ViewModels } set { - SetProperty(ref _Size, value); - LoadItemsCommand.Execute(null); + if (_Size != value) + { + SetProperty(ref _Size, value); + LoadItemsCommand.Execute(null); + } } } private int _Legendary = 0; @@ -165,8 +197,11 @@ namespace AideDeJeu.ViewModels } set { - SetProperty(ref _Legendary, value); - LoadItemsCommand.Execute(null); + if (_Legendary != value) + { + SetProperty(ref _Legendary, value); + LoadItemsCommand.Execute(null); + } } } private int _Source = 1; @@ -178,8 +213,11 @@ namespace AideDeJeu.ViewModels } set { - SetProperty(ref _Source, value); - LoadItemsCommand.Execute(null); + if (_Source != value) + { + SetProperty(ref _Source, value); + LoadItemsCommand.Execute(null); + } } } @@ -199,7 +237,11 @@ namespace AideDeJeu.ViewModels try { AllItems.Clear(); - var items = await new MonstersScrappers().GetMonsters(category: Categories[Category].Key, type: Types[Type].Key, minPower: Powers[MinPower].Key, maxPower: Powers[MaxPower].Key, size: Sizes[Size].Key, legendary:Legendaries[Legendary].Key, source: Sources[Source].Key); + //var items = await new MonstersScrappers().GetMonsters(category: Categories[Category].Key, type: Types[Type].Key, minPower: Powers[MinPower].Key, maxPower: Powers[MaxPower].Key, size: Sizes[Size].Key, legendary:Legendaries[Legendary].Key, source: Sources[Source].Key); + + ItemDatabaseHelper helper = new ItemDatabaseHelper(); + var items = await helper.GetMonstersAsync(category: Categories[Category].Key, type: Types[Type].Key, minPower: Powers[MinPower].Key, maxPower: Powers[MaxPower].Key, size: Sizes[Size].Key, legendary: Legendaries[Legendary].Key, source: Sources[Source].Key); + var aitems = items.ToArray(); Array.Sort(aitems, new ItemComparer()); foreach (var item in aitems) diff --git a/AideDeJeu/AideDeJeu/ViewModels/SpellsViewModel.cs b/AideDeJeu/AideDeJeu/ViewModels/SpellsViewModel.cs index e135bc7e..3067bd28 100644 --- a/AideDeJeu/AideDeJeu/ViewModels/SpellsViewModel.cs +++ b/AideDeJeu/AideDeJeu/ViewModels/SpellsViewModel.cs @@ -76,8 +76,11 @@ namespace AideDeJeu.ViewModels } set { - SetProperty(ref _Classe, value); - LoadItemsCommand.Execute(null); + if (_Classe != value) + { + SetProperty(ref _Classe, value); + LoadItemsCommand.Execute(null); + } } } private int _NiveauMin = 0; @@ -89,12 +92,15 @@ namespace AideDeJeu.ViewModels } set { - SetProperty(ref _NiveauMin, value); - if (_NiveauMax < _NiveauMin) + if (_NiveauMin != value) { - SetProperty(ref _NiveauMax, value, nameof(NiveauMax)); + SetProperty(ref _NiveauMin, value); + if (_NiveauMax < _NiveauMin) + { + SetProperty(ref _NiveauMax, value, nameof(NiveauMax)); + } + LoadItemsCommand.Execute(null); } - LoadItemsCommand.Execute(null); } } private int _NiveauMax = 9; @@ -106,12 +112,15 @@ namespace AideDeJeu.ViewModels } set { - SetProperty(ref _NiveauMax, value); - if (_NiveauMax < _NiveauMin) + if (_NiveauMax != value) { - SetProperty(ref _NiveauMin, value, nameof(NiveauMin)); + SetProperty(ref _NiveauMax, value); + if (_NiveauMax < _NiveauMin) + { + SetProperty(ref _NiveauMin, value, nameof(NiveauMin)); + } + LoadItemsCommand.Execute(null); } - LoadItemsCommand.Execute(null); } } private int _Ecole = 0; @@ -123,8 +132,11 @@ namespace AideDeJeu.ViewModels } set { - SetProperty(ref _Ecole, value); - LoadItemsCommand.Execute(null); + if (_Ecole != value) + { + SetProperty(ref _Ecole, value); + LoadItemsCommand.Execute(null); + } } } private int _Rituel = 0; @@ -136,8 +148,11 @@ namespace AideDeJeu.ViewModels } set { - SetProperty(ref _Rituel, value); - LoadItemsCommand.Execute(null); + if (_Rituel != value) + { + SetProperty(ref _Rituel, value); + LoadItemsCommand.Execute(null); + } } } private int _Source = 1; @@ -149,8 +164,11 @@ namespace AideDeJeu.ViewModels } set { - SetProperty(ref _Source, value); - LoadItemsCommand.Execute(null); + if (_Source != value) + { + SetProperty(ref _Source, value); + LoadItemsCommand.Execute(null); + } } }