From a6a1c53e9ba4843f236f125b20757ff76ec0bb2d Mon Sep 17 00:00:00 2001 From: Yan Maniez Date: Mon, 28 May 2018 20:24:09 +0200 Subject: [PATCH] Titre --- .../AideDeJeu/ViewModels/ItemsViewModel.cs | 105 +++++++++++++----- .../AideDeJeu/ViewModels/MonstersViewModel.cs | 62 +---------- .../AideDeJeu/ViewModels/SpellsViewModel.cs | 74 +----------- AideDeJeu/AideDeJeu/Views/MainPage.xaml | 4 +- 4 files changed, 83 insertions(+), 162 deletions(-) diff --git a/AideDeJeu/AideDeJeu/ViewModels/ItemsViewModel.cs b/AideDeJeu/AideDeJeu/ViewModels/ItemsViewModel.cs index 13f2a42b..f34619f9 100644 --- a/AideDeJeu/AideDeJeu/ViewModels/ItemsViewModel.cs +++ b/AideDeJeu/AideDeJeu/ViewModels/ItemsViewModel.cs @@ -1,5 +1,10 @@ using AideDeJeuLib; +using AideDeJeuLib.Monsters; +using AideDeJeuLib.Spells; +using System; +using System.Collections.Generic; using System.Collections.ObjectModel; +using System.Diagnostics; using System.Threading.Tasks; using System.Windows.Input; using Xamarin.Forms; @@ -8,39 +13,87 @@ namespace AideDeJeu.ViewModels { public abstract class ItemsViewModel : BaseViewModel { - public ItemsViewModel() + public ItemsViewModel(ItemSourceType itemSourceType) { + this.ItemSourceType = itemSourceType; LoadItemsCommand = new Command(() => ExecuteLoadItemsCommand()); } public ICommand LoadItemsCommand { get; protected set; } - public abstract void ExecuteLoadItemsCommand(); + //public abstract void ExecuteLoadItemsCommand(); public abstract Task ExecuteGotoItemCommandAsync(Item item); + protected ItemSourceType ItemSourceType; - //private string _SearchText = ""; - //public string SearchText - //{ - // get - // { - // return _SearchText; - // } - // set - // { - // SetProperty(ref _SearchText, value); - // FilterItems(); - // } - //} - //public void FilterItems() - //{ - // Items.Clear(); - // foreach (var item in AllItems) - // { - // if (item.NamePHB.ToLower().Contains(SearchText.ToLower())) - // { - // Items.Add(item); - // } - // } - //} + private IEnumerable _AllItems = null; + public IEnumerable AllItems + { + get + { + if (_AllItems == null) + { + string resourceName = null; + switch (ItemSourceType) + { + case ItemSourceType.MonsterVF: + resourceName = "AideDeJeu.Data.monsters_vf.json"; + break; + case ItemSourceType.MonsterVO: + resourceName = "AideDeJeu.Data.monsters_vo.json"; + break; + case ItemSourceType.MonsterHD: + resourceName = "AideDeJeu.Data.monsters_hd.json"; + break; + case ItemSourceType.SpellVF: + resourceName = "AideDeJeu.Data.spells_vf.json"; + break; + case ItemSourceType.SpellVO: + resourceName = "AideDeJeu.Data.spells_vo.json"; + break; + case ItemSourceType.SpellHD: + resourceName = "AideDeJeu.Data.spells_hd.json"; + break; + } + if (ItemSourceType.HasFlag(ItemSourceType.Spell)) + { + _AllItems = Tools.Helpers.GetResourceObject>(resourceName); + } + else if (ItemSourceType.HasFlag(ItemSourceType.Monster)) + { + _AllItems = Tools.Helpers.GetResourceObject>(resourceName); + } + } + return _AllItems; + } + } + + public void ExecuteLoadItemsCommand() + { + if (IsBusy) + return; + + IsBusy = true; + + try + { + Main.Items.Clear(); + + var filterViewModel = Main.GetFilterViewModel(ItemSourceType); + var items = filterViewModel.FilterItems(AllItems); + + foreach (var item in items) + { + Main.Items.Add(item); + } + } + catch (Exception ex) + { + Debug.WriteLine(ex); + } + finally + { + IsBusy = false; + } + } } diff --git a/AideDeJeu/AideDeJeu/ViewModels/MonstersViewModel.cs b/AideDeJeu/AideDeJeu/ViewModels/MonstersViewModel.cs index 771e4c30..63b8879d 100644 --- a/AideDeJeu/AideDeJeu/ViewModels/MonstersViewModel.cs +++ b/AideDeJeu/AideDeJeu/ViewModels/MonstersViewModel.cs @@ -15,73 +15,13 @@ namespace AideDeJeu.ViewModels { public class MonstersViewModel : ItemsViewModel { - ItemSourceType ItemSourceType; - public MonstersViewModel(ItemSourceType itemSourceType) + public MonstersViewModel(ItemSourceType itemSourceType) : base(itemSourceType) { - this.ItemSourceType = itemSourceType; - } - - - private IEnumerable _AllMonsters = null; - private IEnumerable AllMonsters - { - get - { - if (_AllMonsters == null) - { - string resourceName = null; - switch (ItemSourceType) - { - case ItemSourceType.MonsterVF: - resourceName = "AideDeJeu.Data.monsters_vf.json"; - break; - case ItemSourceType.MonsterVO: - resourceName = "AideDeJeu.Data.monsters_vo.json"; - break; - case ItemSourceType.MonsterHD: - resourceName = "AideDeJeu.Data.monsters_hd.json"; - break; - } - _AllMonsters = Tools.Helpers.GetResourceObject>(resourceName); - } - return _AllMonsters; - } - } - - public override void ExecuteLoadItemsCommand() - { - if (IsBusy) - return; - - IsBusy = true; - - try - { - Main.Items.Clear(); - - var filterViewModel = Main.GetFilterViewModel(ItemSourceType); - var items = filterViewModel.FilterItems(AllMonsters); - - foreach (var item in items) - { - Main.Items.Add(item); - } - //FilterItems(); - } - catch (Exception ex) - { - Debug.WriteLine(ex); - } - finally - { - IsBusy = false; - } } public override async Task ExecuteGotoItemCommandAsync(Item item) { await Main.Navigator.GotoMonsterDetailPageAsync(item as Monster); } - } } \ No newline at end of file diff --git a/AideDeJeu/AideDeJeu/ViewModels/SpellsViewModel.cs b/AideDeJeu/AideDeJeu/ViewModels/SpellsViewModel.cs index 009d9649..c9b0649f 100644 --- a/AideDeJeu/AideDeJeu/ViewModels/SpellsViewModel.cs +++ b/AideDeJeu/AideDeJeu/ViewModels/SpellsViewModel.cs @@ -14,80 +14,8 @@ namespace AideDeJeu.ViewModels { public class SpellsViewModel : ItemsViewModel { - ItemSourceType ItemSourceType; - public SpellsViewModel(ItemSourceType itemSourceType) + public SpellsViewModel(ItemSourceType itemSourceType) : base(itemSourceType) { - this.ItemSourceType = itemSourceType; - } - private IEnumerable _AllSpells = null; - private IEnumerable AllSpells - { - get - { - if(_AllSpells == null) - { - string resourceName = null; - switch(ItemSourceType) - { - case ItemSourceType.SpellVF: - resourceName = "AideDeJeu.Data.spells_vf.json"; - break; - case ItemSourceType.SpellVO: - resourceName = "AideDeJeu.Data.spells_vo.json"; - break; - case ItemSourceType.SpellHD: - resourceName = "AideDeJeu.Data.spells_hd.json"; - break; - } - _AllSpells = Tools.Helpers.GetResourceObject>(resourceName); - } - return _AllSpells; - } - } - - public IEnumerable GetSpells(string classe, string niveauMin, string niveauMax, string ecole, string rituel, string source) - { - return AllSpells - .Where(spell => - (int.Parse(spell.Level) >= int.Parse(niveauMin)) && - (int.Parse(spell.Level) <= int.Parse(niveauMax)) && - spell.Type.ToLower().Contains(ecole.ToLower()) && - spell.Source.Contains(source) && - spell.Source.Contains(classe) && - spell.Type.Contains(rituel) - ) - .OrderBy(spell => spell.NamePHB) - .ToList(); - } - - - public override void ExecuteLoadItemsCommand() - { - if (IsBusy) - return; - - IsBusy = true; - - try - { - Main.Items.Clear(); - - var filterViewModel = Main.GetFilterViewModel(ItemSourceType); - var items = filterViewModel.FilterItems(AllSpells); - foreach (var item in items) - { - Main.Items.Add(item); - } - //FilterItems(); - } - catch (Exception ex) - { - Debug.WriteLine(ex); - } - finally - { - IsBusy = false; - } } public override async Task ExecuteGotoItemCommandAsync(Item item) diff --git a/AideDeJeu/AideDeJeu/Views/MainPage.xaml b/AideDeJeu/AideDeJeu/Views/MainPage.xaml index 3711f977..78cdb795 100644 --- a/AideDeJeu/AideDeJeu/Views/MainPage.xaml +++ b/AideDeJeu/AideDeJeu/Views/MainPage.xaml @@ -6,7 +6,7 @@ x:Class="AideDeJeu.Views.MainPage" x:Name="This" IsPresented="False" - Title="{Binding ItemSourceType,Converter={StaticResource ItemSourceTypeToTitleConverter}}"> + Title=""> - +