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) {
+
-@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;
-}
-
-
-
-
- @Html.Raw(Model.Source.Content)
-
-
-
-
-
-
\ 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