From e04be9e4584bd5d39f0336b6611315cd207b13c3 Mon Sep 17 00:00:00 2001 From: Yan Maniez Date: Sat, 14 Jul 2018 00:28:06 +0200 Subject: [PATCH] =?UTF-8?q?Suite=20r=C3=A9org=20main/items?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AideDeJeu/ViewModels/ItemsViewModel.cs | 128 +++++++++--------- .../AideDeJeu/ViewModels/MainViewModel.cs | 56 +++++++- 2 files changed, 114 insertions(+), 70 deletions(-) diff --git a/AideDeJeu/AideDeJeu/ViewModels/ItemsViewModel.cs b/AideDeJeu/AideDeJeu/ViewModels/ItemsViewModel.cs index 1538d045..47a32a8d 100644 --- a/AideDeJeu/AideDeJeu/ViewModels/ItemsViewModel.cs +++ b/AideDeJeu/AideDeJeu/ViewModels/ItemsViewModel.cs @@ -28,69 +28,69 @@ namespace AideDeJeu.ViewModels //protected ItemSourceType ItemSourceType; - private IEnumerable _AllItems = null; - public async Task> GetAllItemsAsync() - { - if (_AllItems == null) - { - string resourceName = null; - switch (ItemSourceType) - { - case ItemSourceType.MonsterVO: - { - resourceName = "AideDeJeu.Data.monsters_vo.md"; - var md = await Tools.Helpers.GetResourceStringAsync(resourceName); - _AllItems = Tools.MarkdownExtensions.ToItem(md) as IEnumerable; - //_AllItems = Tools.MarkdownExtensions.MarkdownToMonsters(md); - } - break; - case ItemSourceType.MonsterHD: - { - resourceName = "AideDeJeu.Data.monsters_hd.md"; - //var md = await Tools.Helpers.GetStringFromUrl("https://raw.githubusercontent.com/Nioux/AideDeJeu/master/Data/monsters_hd.md"); - var md = await Tools.Helpers.GetResourceStringAsync(resourceName); - _AllItems = Tools.MarkdownExtensions.ToItem(md) as IEnumerable; - //_AllItems = Tools.MarkdownExtensions.MarkdownToMonsters(md); - } - break; - case ItemSourceType.SpellVO: - { - resourceName = "AideDeJeu.Data.spells_vo.md"; - var md = await Tools.Helpers.GetResourceStringAsync(resourceName); - _AllItems = Tools.MarkdownExtensions.ToItem(md) as IEnumerable; - //_AllItems = Tools.MarkdownExtensions.MarkdownToSpells(md); - } - break; - case ItemSourceType.SpellHD: - { - resourceName = "AideDeJeu.Data.spells_hd.md"; - //var md = await Tools.Helpers.GetStringFromUrl("https://raw.githubusercontent.com/Nioux/AideDeJeu/master/Data/spells_hd.md"); - var md = await Tools.Helpers.GetResourceStringAsync(resourceName); - _AllItems = Tools.MarkdownExtensions.ToItem(md) as IEnumerable; - //_AllItems = Tools.MarkdownExtensions.MarkdownToSpells(md); - } - break; - case ItemSourceType.ConditionVO: - { - resourceName = "AideDeJeu.Data.conditions_vo.md"; - var md = await Tools.Helpers.GetResourceStringAsync(resourceName); - _AllItems = Tools.MarkdownExtensions.ToItem(md) as IEnumerable; - //_AllItems = Tools.MarkdownExtensions.MarkdownToConditions(md); - } - break; - case ItemSourceType.ConditionHD: - { - resourceName = "AideDeJeu.Data.conditions_hd.md"; - //var md = await Tools.Helpers.GetStringFromUrl("https://raw.githubusercontent.com/Nioux/AideDeJeu/master/Data/spells_hd.md"); - var md = await Tools.Helpers.GetResourceStringAsync(resourceName); - _AllItems = Tools.MarkdownExtensions.ToItem(md) as IEnumerable; - //_AllItems = Tools.MarkdownExtensions.MarkdownToConditions(md); - } - break; - } - } - return _AllItems; - } + //private IEnumerable _AllItems = null; + //public async Task> GetAllItemsAsync() + //{ + // if (_AllItems == null) + // { + // string resourceName = null; + // switch (ItemSourceType) + // { + // case ItemSourceType.MonsterVO: + // { + // resourceName = "AideDeJeu.Data.monsters_vo.md"; + // var md = await Tools.Helpers.GetResourceStringAsync(resourceName); + // _AllItems = Tools.MarkdownExtensions.ToItem(md) as IEnumerable; + // //_AllItems = Tools.MarkdownExtensions.MarkdownToMonsters(md); + // } + // break; + // case ItemSourceType.MonsterHD: + // { + // resourceName = "AideDeJeu.Data.monsters_hd.md"; + // //var md = await Tools.Helpers.GetStringFromUrl("https://raw.githubusercontent.com/Nioux/AideDeJeu/master/Data/monsters_hd.md"); + // var md = await Tools.Helpers.GetResourceStringAsync(resourceName); + // _AllItems = Tools.MarkdownExtensions.ToItem(md) as IEnumerable; + // //_AllItems = Tools.MarkdownExtensions.MarkdownToMonsters(md); + // } + // break; + // case ItemSourceType.SpellVO: + // { + // resourceName = "AideDeJeu.Data.spells_vo.md"; + // var md = await Tools.Helpers.GetResourceStringAsync(resourceName); + // _AllItems = Tools.MarkdownExtensions.ToItem(md) as IEnumerable; + // //_AllItems = Tools.MarkdownExtensions.MarkdownToSpells(md); + // } + // break; + // case ItemSourceType.SpellHD: + // { + // resourceName = "AideDeJeu.Data.spells_hd.md"; + // //var md = await Tools.Helpers.GetStringFromUrl("https://raw.githubusercontent.com/Nioux/AideDeJeu/master/Data/spells_hd.md"); + // var md = await Tools.Helpers.GetResourceStringAsync(resourceName); + // _AllItems = Tools.MarkdownExtensions.ToItem(md) as IEnumerable; + // //_AllItems = Tools.MarkdownExtensions.MarkdownToSpells(md); + // } + // break; + // case ItemSourceType.ConditionVO: + // { + // resourceName = "AideDeJeu.Data.conditions_vo.md"; + // var md = await Tools.Helpers.GetResourceStringAsync(resourceName); + // _AllItems = Tools.MarkdownExtensions.ToItem(md) as IEnumerable; + // //_AllItems = Tools.MarkdownExtensions.MarkdownToConditions(md); + // } + // break; + // case ItemSourceType.ConditionHD: + // { + // resourceName = "AideDeJeu.Data.conditions_hd.md"; + // //var md = await Tools.Helpers.GetStringFromUrl("https://raw.githubusercontent.com/Nioux/AideDeJeu/master/Data/spells_hd.md"); + // var md = await Tools.Helpers.GetResourceStringAsync(resourceName); + // _AllItems = Tools.MarkdownExtensions.ToItem(md) as IEnumerable; + // //_AllItems = Tools.MarkdownExtensions.MarkdownToConditions(md); + // } + // break; + // } + // } + // return _AllItems; + //} private ItemSourceType _ItemSourceType = ItemSourceType.SpellHD; public ItemSourceType ItemSourceType @@ -157,7 +157,7 @@ namespace AideDeJeu.ViewModels try { var filterViewModel = Filter;// Main.GetFilterViewModel(ItemSourceType); - var items = await filterViewModel.FilterItems(await GetAllItemsAsync(), cancellationToken: cancellationToken); + var items = await filterViewModel.FilterItems(await Main.GetAllItemsAsync(ItemSourceType), cancellationToken: cancellationToken); Items = items.ToList(); } catch (OperationCanceledException ex) diff --git a/AideDeJeu/AideDeJeu/ViewModels/MainViewModel.cs b/AideDeJeu/AideDeJeu/ViewModels/MainViewModel.cs index b0c0fe40..b045cd4a 100644 --- a/AideDeJeu/AideDeJeu/ViewModels/MainViewModel.cs +++ b/AideDeJeu/AideDeJeu/ViewModels/MainViewModel.cs @@ -29,6 +29,54 @@ namespace AideDeJeu.ViewModels set => SetProperty(ref _isLoading, value); } + private Dictionary> _AllItems = new Dictionary>(); + public async Task> GetAllItemsAsync(ItemSourceType itemSourceType) + { + if (!_AllItems.ContainsKey(itemSourceType)) + { + string resourceName = null; + switch (itemSourceType) + { + case ItemSourceType.MonsterVO: + { + resourceName = "monsters_vo"; + } + break; + case ItemSourceType.MonsterHD: + { + resourceName = "monsters_hd"; + } + break; + case ItemSourceType.SpellVO: + { + resourceName = "spells_vo"; + } + break; + case ItemSourceType.SpellHD: + { + resourceName = "spells_hd"; + } + break; + case ItemSourceType.ConditionVO: + { + resourceName = "conditions_vo"; + } + break; + case ItemSourceType.ConditionHD: + { + resourceName = "conditions_hd"; + } + break; + } + //var md = await Tools.Helpers.GetStringFromUrl($"https://raw.githubusercontent.com/Nioux/AideDeJeu/master/Data/{resourceName}.md"); + var md = await Tools.Helpers.GetResourceStringAsync($"AideDeJeu.Data.{resourceName}.md"); + _AllItems[itemSourceType] = Tools.MarkdownExtensions.ToItem(md) as IEnumerable; + } + return _AllItems[itemSourceType]; + } + + + public List> ItemsSources { get; set; } = new List>() { new KeyValuePair(ItemSourceType.SpellHD, "Sorts (H&D)"), @@ -117,7 +165,7 @@ namespace AideDeJeu.ViewModels // }); GotoItemCommand = new Command(async (item) => { - await NavigateToItem(item); + await Navigator.GotoItemDetailPageAsync(item); //await GetItemsViewModel(ItemSourceType).ExecuteGotoItemCommandAsync(item); }); //SwitchToSpellsHD = new Command(() => ItemSourceType = ItemSourceType.SpellHD); @@ -161,10 +209,6 @@ namespace AideDeJeu.ViewModels return ItemSourceType.SpellHD; } - public async Task NavigateToItem(Item item) - { - await Navigator.GotoItemDetailPageAsync(item); - } public async Task NavigateToLink(string s) { if (s != null) @@ -176,7 +220,7 @@ namespace AideDeJeu.ViewModels var file = match.Groups["file"].Value; var anchor = match.Groups["anchor"].Value; var itemSourceType = MDFileToItemSourceType(file); - var spells = await GetItemsViewModel(itemSourceType).GetAllItemsAsync(); + var spells = await GetAllItemsAsync(itemSourceType); var spell = spells.Where(i => Tools.Helpers.IdFromName(i.Name) == anchor).FirstOrDefault(); if (spell != null) {