From 23163fc8d98b60b183ced299f7ab552aa378d9ca Mon Sep 17 00:00:00 2001 From: Yan Maniez Date: Fri, 18 May 2018 22:04:56 +0200 Subject: [PATCH] Remise en place des filtres monstres manquants --- AideDeJeu/AideDeJeu/Services/ItemDatabaseHelper.cs | 8 ++++++-- AideDeJeu/AideDeJeu/Tools/Comparers.cs | 12 ++++++++++++ AideDeJeu/AideDeJeu/Views/MainPage.xaml | 8 ++++---- 3 files changed, 22 insertions(+), 6 deletions(-) diff --git a/AideDeJeu/AideDeJeu/Services/ItemDatabaseHelper.cs b/AideDeJeu/AideDeJeu/Services/ItemDatabaseHelper.cs index cafc061b..00c4a03a 100644 --- a/AideDeJeu/AideDeJeu/Services/ItemDatabaseHelper.cs +++ b/AideDeJeu/AideDeJeu/Services/ItemDatabaseHelper.cs @@ -1,4 +1,5 @@ -using AideDeJeuLib.Monsters; +using AideDeJeu.Tools; +using AideDeJeuLib.Monsters; using AideDeJeuLib.Spells; using Microsoft.EntityFrameworkCore; using System; @@ -55,12 +56,15 @@ namespace AideDeJeu.Services { using (var context = await CreateContextAsync().ConfigureAwait(false)) { + var powerComparer = new PowerComparer(); return await context.Monsters .AsNoTracking() .Where(monster => monster.Type.Contains(type) && (string.IsNullOrEmpty(size) || monster.Size.Equals(size)) && - monster.Source.Contains(source) + monster.Source.Contains(source) && + powerComparer.Compare(monster.Challenge, minPower) >= 0 && + powerComparer.Compare(monster.Challenge, maxPower) <= 0 ) //.OrderByDescending(monster => monster.Id) .ToListAsync().ConfigureAwait(false); diff --git a/AideDeJeu/AideDeJeu/Tools/Comparers.cs b/AideDeJeu/AideDeJeu/Tools/Comparers.cs index c42fac80..fd164f8d 100644 --- a/AideDeJeu/AideDeJeu/Tools/Comparers.cs +++ b/AideDeJeu/AideDeJeu/Tools/Comparers.cs @@ -3,6 +3,7 @@ using AideDeJeuLib.Spells; using System; using System.Collections.Generic; using System.Text; +using System.Text.RegularExpressions; namespace AideDeJeu.Tools { @@ -13,4 +14,15 @@ namespace AideDeJeu.Tools return x.NamePHB.CompareTo(y.NamePHB); } } + + public class PowerComparer : Comparer + { + public override int Compare(string x, string y) + { + var regex = new Regex(@"\((?\d*?) PX\)"); + int xpx = int.Parse(regex.Match(x).Groups["xp"].Value); + int xpy = int.Parse(regex.Match(y).Groups["xp"].Value); + return xpx - xpy; + } + } } diff --git a/AideDeJeu/AideDeJeu/Views/MainPage.xaml b/AideDeJeu/AideDeJeu/Views/MainPage.xaml index 2f081d75..0dec5fc2 100644 --- a/AideDeJeu/AideDeJeu/Views/MainPage.xaml +++ b/AideDeJeu/AideDeJeu/Views/MainPage.xaml @@ -37,8 +37,8 @@ -