diff --git a/AideDeJeu/AideDeJeu/Tools/Helpers.cs b/AideDeJeu/AideDeJeu/Tools/Helpers.cs index fa85e711..8e3b2f19 100644 --- a/AideDeJeu/AideDeJeu/Tools/Helpers.cs +++ b/AideDeJeu/AideDeJeu/Tools/Helpers.cs @@ -53,5 +53,16 @@ namespace AideDeJeu.Tools return new string(chars).Normalize(NormalizationForm.FormC); } + public static string Capitalize(string text) + { + return string.Concat(text.Take(1)).ToUpper() + string.Concat(text.Skip(1)).ToString().ToLower(); + } + + public static string IdFromName(string name) + { + return RemoveDiacritics(name.ToLower().Replace(" ", "-")); + } + + } } diff --git a/AideDeJeu/AideDeJeu/ViewModels/MainViewModel.cs b/AideDeJeu/AideDeJeu/ViewModels/MainViewModel.cs index 0d548032..9a24ae47 100644 --- a/AideDeJeu/AideDeJeu/ViewModels/MainViewModel.cs +++ b/AideDeJeu/AideDeJeu/ViewModels/MainViewModel.cs @@ -2,6 +2,9 @@ using System; using System.Collections.Generic; using System.Collections.ObjectModel; +using System.Linq; +using System.Text.RegularExpressions; +using System.Threading.Tasks; using Xamarin.Forms; namespace AideDeJeu.ViewModels @@ -155,5 +158,26 @@ namespace AideDeJeu.ViewModels await GetItemsViewModel(ItemSourceType).ExecuteLoadItemsCommandAsync(); }); } + + public async Task NavigateToLink(string s) + { + var regex = new Regex("/(?.*)\\.md#(?.*)"); + var match = regex.Match(s); + var file = match.Groups["file"].Value; + var anchor = match.Groups["anchor"].Value; + if (file == "spells_hd") + { + var spells = await GetItemsViewModel(ItemSourceType.SpellHD).GetAllItemsAsync(); + var spell = spells.Where(i => Tools.Helpers.IdFromName(i.Id) == anchor).FirstOrDefault(); + await Navigator.GotoSpellDetailPageAsync(spell); + } + else if (file == "monsters_hd") + { + var monsters = await GetItemsViewModel(ItemSourceType.MonsterHD).GetAllItemsAsync(); + var monster = monsters.Where(i => Tools.Helpers.IdFromName(i.Id) == anchor).FirstOrDefault(); + await Navigator.GotoMonsterDetailPageAsync(monster); + } + } + } } \ No newline at end of file diff --git a/AideDeJeu/AideDeJeu/ViewModels/Navigator.cs b/AideDeJeu/AideDeJeu/ViewModels/Navigator.cs index bd753425..5dcb89dc 100644 --- a/AideDeJeu/AideDeJeu/ViewModels/Navigator.cs +++ b/AideDeJeu/AideDeJeu/ViewModels/Navigator.cs @@ -5,6 +5,7 @@ using AideDeJeuLib.Spells; using System; using System.Collections.Generic; using System.Text; +using System.Text.RegularExpressions; using System.Threading.Tasks; using Xamarin.Forms; @@ -51,5 +52,7 @@ namespace AideDeJeu.ViewModels vm.LoadItemCommand.Execute(null); await Navigation.PushAsync(new SpellDetailPage(vm)); } + + } } diff --git a/AideDeJeu/AideDeJeu/Views/MonsterDetailPage.xaml b/AideDeJeu/AideDeJeu/Views/MonsterDetailPage.xaml index ac2a112a..cc11d868 100644 --- a/AideDeJeu/AideDeJeu/Views/MonsterDetailPage.xaml +++ b/AideDeJeu/AideDeJeu/Views/MonsterDetailPage.xaml @@ -89,11 +89,11 @@