From add94527050dc311c4ad117e25dd5e4517b3b887 Mon Sep 17 00:00:00 2001 From: ivarlovlie Date: Tue, 15 Nov 2022 11:05:05 +0700 Subject: feat: Initial commit --- src/Pages/Index.cshtml | 19 +++++++++++++++++++ src/Pages/Index.cshtml.cs | 30 ++++++++++++++++++++++++++++++ src/Pages/Read.cshtml | 26 ++++++++++++++++++++++++++ src/Pages/Read.cshtml.cs | 24 ++++++++++++++++++++++++ src/Pages/Shared/_Layout.cshtml | 20 ++++++++++++++++++++ src/Pages/_ViewImports.cshtml | 3 +++ src/Pages/_ViewStart.cshtml | 3 +++ 7 files changed, 125 insertions(+) create mode 100644 src/Pages/Index.cshtml create mode 100644 src/Pages/Index.cshtml.cs create mode 100644 src/Pages/Read.cshtml create mode 100644 src/Pages/Read.cshtml.cs create mode 100644 src/Pages/Shared/_Layout.cshtml create mode 100644 src/Pages/_ViewImports.cshtml create mode 100644 src/Pages/_ViewStart.cshtml (limited to 'src/Pages') diff --git a/src/Pages/Index.cshtml b/src/Pages/Index.cshtml new file mode 100644 index 0000000..d7599bc --- /dev/null +++ b/src/Pages/Index.cshtml @@ -0,0 +1,19 @@ +@page "{site?}" +@model IndexModel +@{ + ViewData["Title"] = Model.Source.Name; +} + +@foreach (var article in Model.Source.Articles) { +
+ +

@Html.Raw(article.Title)

+
Kilde + +
+} + \ No newline at end of file diff --git a/src/Pages/Index.cshtml.cs b/src/Pages/Index.cshtml.cs new file mode 100644 index 0000000..9305766 --- /dev/null +++ b/src/Pages/Index.cshtml.cs @@ -0,0 +1,30 @@ +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc.RazorPages; + +namespace I2R.LightNews.Pages; + +public class IndexModel : PageModel +{ + private readonly ILogger _logger; + private readonly GrabberService _grabber; + + public IndexModel(ILogger logger, GrabberService grabber) { + _logger = logger; + _grabber = grabber; + } + + public NewsSource Source { get; set; } + + public async Task OnGet(string site) { + if (site.IsNullOrWhiteSpace()) { + return Redirect("/nrk"); + } + + Source = site switch { + "nrk" => await _grabber.GrabNrkAsync(), + _ => await _grabber.GrabNrkAsync() + }; + + return Page(); + } +} \ No newline at end of file diff --git a/src/Pages/Read.cshtml b/src/Pages/Read.cshtml new file mode 100644 index 0000000..2aecc75 --- /dev/null +++ b/src/Pages/Read.cshtml @@ -0,0 +1,26 @@ +@page "/les/{site}" +@model ReadModel +@{ + ViewData["Title"] = Model.Source.Title; +} + +
+
+

@Model.Source.Title

+

@Model.Source.Subtitle

+
+
+
+ Publisert: @Model.Source.PublishedAt.ToString("F")
+ Oppdatert: @Model.Source.UpdatedAt.ToString("F") +
+
+
+ @foreach (var author in Model.Source.Authors) { + @author.Name: @author.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 new file mode 100644 index 0000000..16a1055 --- /dev/null +++ b/src/Pages/Read.cshtml.cs @@ -0,0 +1,24 @@ +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("/"); + return Page(); + } +} \ No newline at end of file diff --git a/src/Pages/Shared/_Layout.cshtml b/src/Pages/Shared/_Layout.cshtml new file mode 100644 index 0000000..bcdd658 --- /dev/null +++ b/src/Pages/Shared/_Layout.cshtml @@ -0,0 +1,20 @@ + + + + + + + + @ViewData["Title"] - Lettnytt + + +
+ +
+
+ @RenderBody() +
+ + \ No newline at end of file diff --git a/src/Pages/_ViewImports.cshtml b/src/Pages/_ViewImports.cshtml new file mode 100644 index 0000000..bc2d314 --- /dev/null +++ b/src/Pages/_ViewImports.cshtml @@ -0,0 +1,3 @@ +@using I2R.LightNews +@namespace I2R.LightNews.Pages +@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers diff --git a/src/Pages/_ViewStart.cshtml b/src/Pages/_ViewStart.cshtml new file mode 100644 index 0000000..a5f1004 --- /dev/null +++ b/src/Pages/_ViewStart.cshtml @@ -0,0 +1,3 @@ +@{ + Layout = "_Layout"; +} -- cgit v1.3