diff --git a/AideDeJeu/AideDeJeu/Pdf/PdfService.cs b/AideDeJeu/AideDeJeu/Pdf/PdfService.cs index 9a389551..13df21a4 100644 --- a/AideDeJeu/AideDeJeu/Pdf/PdfService.cs +++ b/AideDeJeu/AideDeJeu/Pdf/PdfService.cs @@ -49,7 +49,7 @@ namespace AideDeJeu.Pdf } } - public async Task MarkdownToPDF(List mds) + public async Task MarkdownToPDF(IEnumerable mds) { var basePath = BasePdfDirectory; Directory.CreateDirectory(basePath); @@ -59,7 +59,7 @@ namespace AideDeJeu.Pdf } return "test.pdf"; } - public void MarkdownToPdf(List mds, Stream stream) + public void MarkdownToPdf(IEnumerable mds, Stream stream) { var pipeline = new Markdig.MarkdownPipelineBuilder().UseYamlFrontMatter().UsePipeTables().Build(); diff --git a/AideDeJeu/AideDeJeu/ViewModels/Navigator.cs b/AideDeJeu/AideDeJeu/ViewModels/Navigator.cs index dbae097b..6b3337c4 100644 --- a/AideDeJeu/AideDeJeu/ViewModels/Navigator.cs +++ b/AideDeJeu/AideDeJeu/ViewModels/Navigator.cs @@ -371,5 +371,26 @@ namespace AideDeJeu.ViewModels await Navigation.PushAsync(page, true); } + + private Command> _GenerateItemsPDFCommand = null; + public Command> GenerateItemsPDFCommand + { + get + { + return _GenerateItemsPDFCommand ?? (_GenerateItemsPDFCommand = new Command>(async (items) => await ExecuteGenerateItemsPDFCommandAsync(items))); + } + } + + public async Task ExecuteGenerateItemsPDFCommandAsync(IEnumerable items) + { + var page = new PdfViewPage(); + page.PdfFile = new Tools.NotifyTaskCompletion(Task.Run(async () => + { + return await PdfService.Instance.MarkdownToPDF(items.Select(item => item.Markdown)); } + )); + page.BindingContext = page; + await Navigation.PushAsync(page, true); + + } } } \ No newline at end of file diff --git a/AideDeJeu/AideDeJeu/Views/Library/FilteredItemsPage.xaml b/AideDeJeu/AideDeJeu/Views/Library/FilteredItemsPage.xaml index b4b641e3..2e44cf90 100644 --- a/AideDeJeu/AideDeJeu/Views/Library/FilteredItemsPage.xaml +++ b/AideDeJeu/AideDeJeu/Views/Library/FilteredItemsPage.xaml @@ -17,6 +17,7 @@ +