From d949d7aa8b877c25dbd31f09ceb0ddd03e0d055d Mon Sep 17 00:00:00 2001 From: ivarlovlie Date: Wed, 16 Nov 2022 23:49:54 +0700 Subject: refactor: Move reader into index page --- src/Pages/Index.cshtml.cs | 34 +++++++++++++++++++++++++++------- 1 file changed, 27 insertions(+), 7 deletions(-) (limited to 'src/Pages/Index.cshtml.cs') diff --git a/src/Pages/Index.cshtml.cs b/src/Pages/Index.cshtml.cs index 80b0ed0..666c75e 100644 --- a/src/Pages/Index.cshtml.cs +++ b/src/Pages/Index.cshtml.cs @@ -13,16 +13,36 @@ public class IndexModel : PageModel _grabber = grabber; } - public NewsSource Source { get; set; } + public NewsSource FrontPage { get; set; } + public NewsArticle Article { get; set; } + public string PageTitle { get; set; } - public async Task OnGet(string site) { - Source = site switch { - "nrk" => await _grabber.GrabNrkAsync(), - _ => default + public async Task OnGet([FromRoute] string site, [FromQuery] string url = default) { + PageTitle = site switch { + "nrk" => "NRK", + _ => "" }; - if (Source == default) { - return Redirect("/nrk"); + if (url.IsNullOrWhiteSpace()) { + FrontPage = site switch { + "nrk" => await _grabber.GrabNrkAsync(), + _ => default + }; + + if (FrontPage == default) { + return Redirect("/nrk"); + } + } else { + Article = site switch { + "nrk" => await _grabber.GrabNrkArticleAsync(url), + _ => default + }; + + if (Article == default) { + return Redirect(url); + } + + PageTitle = PageTitle + " - " + Article.Title; } return Page(); -- cgit v1.3