1
0
Fork 0
mirror of https://github.com/Nioux/AideDeJeu.git synced 2025-10-30 23:16:09 +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; //protected ItemSourceType ItemSourceType;
private IEnumerable<Item> _AllItems = null; //private IEnumerable<Item> _AllItems = null;
public async Task<IEnumerable<Item>> GetAllItemsAsync() //public async Task<IEnumerable<Item>> GetAllItemsAsync()
{ //{
if (_AllItems == null) // if (_AllItems == null)
{ // {
string resourceName = null; // string resourceName = null;
switch (ItemSourceType) // switch (ItemSourceType)
{ // {
case ItemSourceType.MonsterVO: // case ItemSourceType.MonsterVO:
{ // {
resourceName = "AideDeJeu.Data.monsters_vo.md"; // resourceName = "AideDeJeu.Data.monsters_vo.md";
var md = await Tools.Helpers.GetResourceStringAsync(resourceName); // var md = await Tools.Helpers.GetResourceStringAsync(resourceName);
_AllItems = Tools.MarkdownExtensions.ToItem(md) as IEnumerable<Item>; // _AllItems = Tools.MarkdownExtensions.ToItem(md) as IEnumerable<Item>;
//_AllItems = Tools.MarkdownExtensions.MarkdownToMonsters<MonsterVO>(md); // //_AllItems = Tools.MarkdownExtensions.MarkdownToMonsters<MonsterVO>(md);
} // }
break; // break;
case ItemSourceType.MonsterHD: // case ItemSourceType.MonsterHD:
{ // {
resourceName = "AideDeJeu.Data.monsters_hd.md"; // 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.GetStringFromUrl("https://raw.githubusercontent.com/Nioux/AideDeJeu/master/Data/monsters_hd.md");
var md = await Tools.Helpers.GetResourceStringAsync(resourceName); // var md = await Tools.Helpers.GetResourceStringAsync(resourceName);
_AllItems = Tools.MarkdownExtensions.ToItem(md) as IEnumerable<Item>; // _AllItems = Tools.MarkdownExtensions.ToItem(md) as IEnumerable<Item>;
//_AllItems = Tools.MarkdownExtensions.MarkdownToMonsters<MonsterHD>(md); // //_AllItems = Tools.MarkdownExtensions.MarkdownToMonsters<MonsterHD>(md);
} // }
break; // break;
case ItemSourceType.SpellVO: // case ItemSourceType.SpellVO:
{ // {
resourceName = "AideDeJeu.Data.spells_vo.md"; // resourceName = "AideDeJeu.Data.spells_vo.md";
var md = await Tools.Helpers.GetResourceStringAsync(resourceName); // var md = await Tools.Helpers.GetResourceStringAsync(resourceName);
_AllItems = Tools.MarkdownExtensions.ToItem(md) as IEnumerable<Item>; // _AllItems = Tools.MarkdownExtensions.ToItem(md) as IEnumerable<Item>;
//_AllItems = Tools.MarkdownExtensions.MarkdownToSpells<SpellVO>(md); // //_AllItems = Tools.MarkdownExtensions.MarkdownToSpells<SpellVO>(md);
} // }
break; // break;
case ItemSourceType.SpellHD: // case ItemSourceType.SpellHD:
{ // {
resourceName = "AideDeJeu.Data.spells_hd.md"; // 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.GetStringFromUrl("https://raw.githubusercontent.com/Nioux/AideDeJeu/master/Data/spells_hd.md");
var md = await Tools.Helpers.GetResourceStringAsync(resourceName); // var md = await Tools.Helpers.GetResourceStringAsync(resourceName);
_AllItems = Tools.MarkdownExtensions.ToItem(md) as IEnumerable<Item>; // _AllItems = Tools.MarkdownExtensions.ToItem(md) as IEnumerable<Item>;
//_AllItems = Tools.MarkdownExtensions.MarkdownToSpells<SpellHD>(md); // //_AllItems = Tools.MarkdownExtensions.MarkdownToSpells<SpellHD>(md);
} // }
break; // break;
case ItemSourceType.ConditionVO: // case ItemSourceType.ConditionVO:
{ // {
resourceName = "AideDeJeu.Data.conditions_vo.md"; // resourceName = "AideDeJeu.Data.conditions_vo.md";
var md = await Tools.Helpers.GetResourceStringAsync(resourceName); // var md = await Tools.Helpers.GetResourceStringAsync(resourceName);
_AllItems = Tools.MarkdownExtensions.ToItem(md) as IEnumerable<Item>; // _AllItems = Tools.MarkdownExtensions.ToItem(md) as IEnumerable<Item>;
//_AllItems = Tools.MarkdownExtensions.MarkdownToConditions<AideDeJeuLib.Condition>(md); // //_AllItems = Tools.MarkdownExtensions.MarkdownToConditions<AideDeJeuLib.Condition>(md);
} // }
break; // break;
case ItemSourceType.ConditionHD: // case ItemSourceType.ConditionHD:
{ // {
resourceName = "AideDeJeu.Data.conditions_hd.md"; // 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.GetStringFromUrl("https://raw.githubusercontent.com/Nioux/AideDeJeu/master/Data/spells_hd.md");
var md = await Tools.Helpers.GetResourceStringAsync(resourceName); // var md = await Tools.Helpers.GetResourceStringAsync(resourceName);
_AllItems = Tools.MarkdownExtensions.ToItem(md) as IEnumerable<Item>; // _AllItems = Tools.MarkdownExtensions.ToItem(md) as IEnumerable<Item>;
//_AllItems = Tools.MarkdownExtensions.MarkdownToConditions<AideDeJeuLib.Condition>(md); // //_AllItems = Tools.MarkdownExtensions.MarkdownToConditions<AideDeJeuLib.Condition>(md);
} // }
break; // break;
} // }
} // }
return _AllItems; // return _AllItems;
} //}
private ItemSourceType _ItemSourceType = ItemSourceType.SpellHD; private ItemSourceType _ItemSourceType = ItemSourceType.SpellHD;
public ItemSourceType ItemSourceType public ItemSourceType ItemSourceType
@ -157,7 +157,7 @@ namespace AideDeJeu.ViewModels
try try
{ {
var filterViewModel = Filter;// Main.GetFilterViewModel(ItemSourceType); 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(); Items = items.ToList();
} }
catch (OperationCanceledException ex) catch (OperationCanceledException ex)

View file

@ -29,6 +29,54 @@ namespace AideDeJeu.ViewModels
set => SetProperty(ref _isLoading, value); 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>>() public List<KeyValuePair<ItemSourceType, string>> ItemsSources { get; set; } = new List<KeyValuePair<ItemSourceType, string>>()
{ {
new KeyValuePair<ItemSourceType, string>(ItemSourceType.SpellHD, "Sorts (H&D)"), new KeyValuePair<ItemSourceType, string>(ItemSourceType.SpellHD, "Sorts (H&D)"),
@ -117,7 +165,7 @@ namespace AideDeJeu.ViewModels
// }); // });
GotoItemCommand = new Command<Item>(async (item) => GotoItemCommand = new Command<Item>(async (item) =>
{ {
await NavigateToItem(item); await Navigator.GotoItemDetailPageAsync(item);
//await GetItemsViewModel(ItemSourceType).ExecuteGotoItemCommandAsync(item); //await GetItemsViewModel(ItemSourceType).ExecuteGotoItemCommandAsync(item);
}); });
//SwitchToSpellsHD = new Command(() => ItemSourceType = ItemSourceType.SpellHD); //SwitchToSpellsHD = new Command(() => ItemSourceType = ItemSourceType.SpellHD);
@ -161,10 +209,6 @@ namespace AideDeJeu.ViewModels
return ItemSourceType.SpellHD; return ItemSourceType.SpellHD;
} }
public async Task NavigateToItem(Item item)
{
await Navigator.GotoItemDetailPageAsync(item);
}
public async Task NavigateToLink(string s) public async Task NavigateToLink(string s)
{ {
if (s != null) if (s != null)
@ -176,7 +220,7 @@ namespace AideDeJeu.ViewModels
var file = match.Groups["file"].Value; var file = match.Groups["file"].Value;
var anchor = match.Groups["anchor"].Value; var anchor = match.Groups["anchor"].Value;
var itemSourceType = MDFileToItemSourceType(file); 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(); var spell = spells.Where(i => Tools.Helpers.IdFromName(i.Name) == anchor).FirstOrDefault();
if (spell != null) if (spell != null)
{ {