1
0
Fork 0
mirror of https://github.com/Nioux/AideDeJeu.git synced 2025-10-30 06:56:10 +00:00

Suite réorg main/items

This commit is contained in:
Yan Maniez 2018-07-14 00:28:06 +02:00
parent 11f2031b20
commit e04be9e458
2 changed files with 114 additions and 70 deletions

View file

@ -28,69 +28,69 @@ namespace AideDeJeu.ViewModels
//protected ItemSourceType ItemSourceType;
private IEnumerable<Item> _AllItems = null;
public async Task<IEnumerable<Item>> 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<Item>;
//_AllItems = Tools.MarkdownExtensions.MarkdownToMonsters<MonsterVO>(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<Item>;
//_AllItems = Tools.MarkdownExtensions.MarkdownToMonsters<MonsterHD>(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<Item>;
//_AllItems = Tools.MarkdownExtensions.MarkdownToSpells<SpellVO>(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<Item>;
//_AllItems = Tools.MarkdownExtensions.MarkdownToSpells<SpellHD>(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<Item>;
//_AllItems = Tools.MarkdownExtensions.MarkdownToConditions<AideDeJeuLib.Condition>(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<Item>;
//_AllItems = Tools.MarkdownExtensions.MarkdownToConditions<AideDeJeuLib.Condition>(md);
}
break;
}
}
return _AllItems;
}
//private IEnumerable<Item> _AllItems = null;
//public async Task<IEnumerable<Item>> 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<Item>;
// //_AllItems = Tools.MarkdownExtensions.MarkdownToMonsters<MonsterVO>(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<Item>;
// //_AllItems = Tools.MarkdownExtensions.MarkdownToMonsters<MonsterHD>(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<Item>;
// //_AllItems = Tools.MarkdownExtensions.MarkdownToSpells<SpellVO>(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<Item>;
// //_AllItems = Tools.MarkdownExtensions.MarkdownToSpells<SpellHD>(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<Item>;
// //_AllItems = Tools.MarkdownExtensions.MarkdownToConditions<AideDeJeuLib.Condition>(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<Item>;
// //_AllItems = Tools.MarkdownExtensions.MarkdownToConditions<AideDeJeuLib.Condition>(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)

View file

@ -29,6 +29,54 @@ namespace AideDeJeu.ViewModels
set => SetProperty(ref _isLoading, value);
}
private Dictionary<ItemSourceType, IEnumerable<Item>> _AllItems = new Dictionary<ItemSourceType, IEnumerable<Item>>();
public async Task<IEnumerable<Item>> 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<Item>;
}
return _AllItems[itemSourceType];
}
public List<KeyValuePair<ItemSourceType, string>> ItemsSources { get; set; } = new List<KeyValuePair<ItemSourceType, string>>()
{
new KeyValuePair<ItemSourceType, string>(ItemSourceType.SpellHD, "Sorts (H&D)"),
@ -117,7 +165,7 @@ namespace AideDeJeu.ViewModels
// });
GotoItemCommand = new Command<Item>(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)
{