From 6906ddbd320ec360345957158c736bc1b52dac44 Mon Sep 17 00:00:00 2001 From: Yan Maniez Date: Mon, 2 Jul 2018 17:48:19 +0200 Subject: [PATCH] =?UTF-8?q?Pr=C3=A9paration=20conditions?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AideDeJeu/ViewModels/FilterViewModel.cs | 39 +++++++++++++++++++ .../AideDeJeu/ViewModels/MainViewModel.cs | 28 +++++++++++++ AideDeJeu/AideDeJeu/Views/MainPage.xaml | 34 +++++++++------- 3 files changed, 87 insertions(+), 14 deletions(-) diff --git a/AideDeJeu/AideDeJeu/ViewModels/FilterViewModel.cs b/AideDeJeu/AideDeJeu/ViewModels/FilterViewModel.cs index d7308475..5cda85f7 100644 --- a/AideDeJeu/AideDeJeu/ViewModels/FilterViewModel.cs +++ b/AideDeJeu/AideDeJeu/ViewModels/FilterViewModel.cs @@ -88,6 +88,45 @@ namespace AideDeJeu.ViewModels } } + public class SearchFilterViewModel : FilterViewModel + { + private IEnumerable _Filters = null; + public override IEnumerable Filters + { + get + { + if (_Filters == null) + { + _Filters = new List() + { + }; + } + return _Filters; + } + } + + + public override async Task> FilterItems(IEnumerable items, CancellationToken token = default) + { + return await Task.Run(() => + { + return items.Where(item => + { + var spell = item as Spell; + return + ( + (Helpers.RemoveDiacritics(spell.Name).ToLower().Contains(Helpers.RemoveDiacritics(SearchText ?? string.Empty).ToLower())) || + (Helpers.RemoveDiacritics(spell.NameVOText ?? string.Empty).ToLower().Contains(Helpers.RemoveDiacritics(SearchText ?? string.Empty).ToLower())) + ); + }).OrderBy(spell => spell.Name) + .AsEnumerable(); + }, token); + + } + + } + + #region Spells public abstract class SpellFilterViewModel : FilterViewModel { diff --git a/AideDeJeu/AideDeJeu/ViewModels/MainViewModel.cs b/AideDeJeu/AideDeJeu/ViewModels/MainViewModel.cs index f9a2a633..4a83ccd0 100644 --- a/AideDeJeu/AideDeJeu/ViewModels/MainViewModel.cs +++ b/AideDeJeu/AideDeJeu/ViewModels/MainViewModel.cs @@ -44,12 +44,38 @@ namespace AideDeJeu.ViewModels set => SetProperty(ref _isLoading, value); } + public List> ItemsSources { get; set; } = new List>() + { + new KeyValuePair(ItemSourceType.SpellHD, "Sorts (H&D)"), + new KeyValuePair(ItemSourceType.SpellVO, "Spells (VO)"), + new KeyValuePair(ItemSourceType.MonsterHD, "Créatures (H&D)"), + new KeyValuePair(ItemSourceType.MonsterVO, "Monsters (VO)"), + new KeyValuePair(ItemSourceType.ConditionHD, "Etats spéciaux (H&D)"), + new KeyValuePair(ItemSourceType.ConditionVO, "Conditions (VO)"), + }; + + private int _ItemsSourcesIndex = 0; + public int ItemsSourcesIndex + { + get + { + return _ItemsSourcesIndex; + } + set + { + SetProperty(ref _ItemsSourcesIndex, value); + ItemSourceType = ItemsSources[value].Key; + } + } + public Dictionary> AllItemsViewModel = new Dictionary>() { { ItemSourceType.SpellVO, new Lazy(() => new ItemsViewModel(ItemSourceType.SpellVO)) }, { ItemSourceType.SpellHD, new Lazy(() => new ItemsViewModel(ItemSourceType.SpellHD)) }, { ItemSourceType.MonsterVO, new Lazy(() => new ItemsViewModel(ItemSourceType.MonsterVO)) }, { ItemSourceType.MonsterHD, new Lazy(() => new ItemsViewModel(ItemSourceType.MonsterHD)) }, + { ItemSourceType.ConditionHD, new Lazy(() => new ItemsViewModel(ItemSourceType.ConditionHD)) }, + { ItemSourceType.ConditionVO, new Lazy(() => new ItemsViewModel(ItemSourceType.ConditionVO)) }, }; public ItemsViewModel GetItemsViewModel(ItemSourceType itemSourceType) @@ -63,6 +89,8 @@ namespace AideDeJeu.ViewModels { ItemSourceType.SpellHD, new Lazy(() => new HDSpellFilterViewModel()) }, { ItemSourceType.MonsterVO, new Lazy(() => new VOMonsterFilterViewModel()) }, { ItemSourceType.MonsterHD, new Lazy(() => new HDMonsterFilterViewModel()) }, + { ItemSourceType.ConditionHD, new Lazy(() => new SearchFilterViewModel()) }, + { ItemSourceType.ConditionVO, new Lazy(() => new SearchFilterViewModel()) }, }; public FilterViewModel GetFilterViewModel(ItemSourceType itemSourceType) diff --git a/AideDeJeu/AideDeJeu/Views/MainPage.xaml b/AideDeJeu/AideDeJeu/Views/MainPage.xaml index b41bf248..158ae63f 100644 --- a/AideDeJeu/AideDeJeu/Views/MainPage.xaml +++ b/AideDeJeu/AideDeJeu/Views/MainPage.xaml @@ -8,20 +8,26 @@ - - - - - - - - - - - - + + + + + + + + + + + + + + + +