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 | 105 +++++++++++++++++++++++++++++++++++++++------- src/Pages/Index.cshtml.cs | 34 +++++++++++---- src/Pages/Read.cshtml | 50 ---------------------- src/Pages/Read.cshtml.cs | 24 ----------- 4 files changed, 116 insertions(+), 97 deletions(-) delete mode 100644 src/Pages/Read.cshtml delete mode 100644 src/Pages/Read.cshtml.cs (limited to 'src/Pages') diff --git a/src/Pages/Index.cshtml b/src/Pages/Index.cshtml index f01b263..0501e3e 100644 --- a/src/Pages/Index.cshtml +++ b/src/Pages/Index.cshtml @@ -1,21 +1,94 @@ @page "{site?}" @model IndexModel @{ - ViewData["Title"] = Model.Source.Name; + ViewData["Title"] = Model.PageTitle; } +@if (Model.FrontPage != default) { + foreach (var article in Model.FrontPage.Articles) { + + } + + @section scripts { + + } + } else if (Model.Article != default) { +
+
+

@Model.Article.Title

+

@Model.Article.Subtitle

+
+
-@foreach (var article in Model.Source.Articles) { - -} - \ No newline at end of file +
+ @Html.Raw(Model.Article.Content) +
+ + + +@section scripts { + +}} \ No newline at end of file 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(); diff --git a/src/Pages/Read.cshtml b/src/Pages/Read.cshtml deleted file mode 100644 index 9cff853..0000000 --- a/src/Pages/Read.cshtml +++ /dev/null @@ -1,50 +0,0 @@ -@page "/les/{site}" -@model ReadModel -@{ - ViewData["Title"] = Model.Source.Title; -} - -
-
-

@Model.Source.Title

-

@Model.Source.Subtitle

-
-
- -
- @Html.Raw(Model.Source.Content) -
- -
-

-

-
- @foreach (var author in Model.Source.Authors) { - @author.Name: @author.Title -
- } -
-
- @if (Model.Source.PublishedAt != default) { - Publisert: @Model.Source.PublishedAt.ToString("dd-MM-yyyy hh:mm:ss") - } - @if (Model.Source.UpdatedAt != default) { -
- Oppdatert: @Model.Source.UpdatedAt.ToString("dd-MM-yyyy hh:mm:ss") - } -
- - Les på nrk.no - -
-
-

-
- - \ No newline at end of file diff --git a/src/Pages/Read.cshtml.cs b/src/Pages/Read.cshtml.cs deleted file mode 100644 index 1a13ec0..0000000 --- a/src/Pages/Read.cshtml.cs +++ /dev/null @@ -1,24 +0,0 @@ -using Microsoft.AspNetCore.Mvc; -using Microsoft.AspNetCore.Mvc.RazorPages; - -namespace I2R.LightNews.Pages; - -public class ReadModel : PageModel -{ - private readonly GrabberService _grabber; - - public NewsArticle Source { get; set; } - - public ReadModel(GrabberService grabber) { - _grabber = grabber; - } - - public async Task OnGet([FromRoute] string site, [FromQuery] string url) { - Source = site switch { - "nrk" => await _grabber.GrabNrkArticleAsync(url), - _ => default - }; - if (Source == default) return Redirect(url); - return Page(); - } -} \ No newline at end of file -- cgit v1.3