From 4ce01fad055dc77f4035a242fa204d8ca17a8b52 Mon Sep 17 00:00:00 2001 From: Yan Maniez Date: Wed, 30 May 2018 21:55:19 +0200 Subject: [PATCH] Recherche sans accents --- AideDeJeu/AideDeJeu/Tools/Helpers.cs | 13 +++++++++++++ AideDeJeu/AideDeJeu/ViewModels/FilterViewModel.cs | 4 ++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/AideDeJeu/AideDeJeu/Tools/Helpers.cs b/AideDeJeu/AideDeJeu/Tools/Helpers.cs index aca83287..63a040ea 100644 --- a/AideDeJeu/AideDeJeu/Tools/Helpers.cs +++ b/AideDeJeu/AideDeJeu/Tools/Helpers.cs @@ -1,5 +1,7 @@ using System; using System.Collections.Generic; +using System.Globalization; +using System.Linq; using System.Reflection; using System.Runtime.Serialization.Json; using System.Text; @@ -17,5 +19,16 @@ namespace AideDeJeu.Tools return serializer.ReadObject(stream) as T; } } + + public static string RemoveDiacritics(string text) + { + if (string.IsNullOrWhiteSpace(text)) + return text; + + text = text.Normalize(NormalizationForm.FormD); + var chars = text.Where(c => CharUnicodeInfo.GetUnicodeCategory(c) != UnicodeCategory.NonSpacingMark).ToArray(); + return new string(chars).Normalize(NormalizationForm.FormC); + } + } } diff --git a/AideDeJeu/AideDeJeu/ViewModels/FilterViewModel.cs b/AideDeJeu/AideDeJeu/ViewModels/FilterViewModel.cs index a99145e6..28d3768c 100644 --- a/AideDeJeu/AideDeJeu/ViewModels/FilterViewModel.cs +++ b/AideDeJeu/AideDeJeu/ViewModels/FilterViewModel.cs @@ -130,7 +130,7 @@ namespace AideDeJeu.ViewModels spell.Source.Contains(source) && spell.Source.Contains(classe) && spell.Type.Contains(rituel) && - spell.NamePHB.ToLower().Contains(SearchText.ToLower()); + Helpers.RemoveDiacritics(spell.NamePHB).ToLower().Contains(Helpers.RemoveDiacritics(SearchText).ToLower()); }) .OrderBy(spell => spell.NamePHB) .ToList(); @@ -363,7 +363,7 @@ namespace AideDeJeu.ViewModels monster.Source.Contains(source) && powerComparer.Compare(monster.Challenge, minPower) >= 0 && powerComparer.Compare(monster.Challenge, maxPower) <= 0 && - monster.NamePHB.ToLower().Contains(SearchText.ToLower()); + Helpers.RemoveDiacritics(monster.NamePHB).ToLower().Contains(Helpers.RemoveDiacritics(SearchText).ToLower()); }) .OrderBy(monster => monster.NamePHB) .ToList();