Skip to content
This repository was archived by the owner on Apr 13, 2022. It is now read-only.

Commit 594fac8

Browse files
committed
Work on #26
1 parent 8045151 commit 594fac8

File tree

4 files changed

+50
-10
lines changed

4 files changed

+50
-10
lines changed

NewsletterCurator.Data/Category.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using System;
2+
using System.Collections.Generic;
23
using System.ComponentModel.DataAnnotations;
34
using System.ComponentModel.DataAnnotations.Schema;
45

@@ -10,5 +11,6 @@ public class Category
1011
public Guid ID { get; set; }
1112
[Required]
1213
public string Name { get; set; }
14+
public List<Newsitem> Newsitems { get; set; }
1315
}
1416
}

NewsletterCurator.Web/Controllers/HomeController.cs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
using System.Linq;
2+
using System.Threading.Tasks;
23
using Microsoft.AspNetCore.Mvc;
4+
using Microsoft.EntityFrameworkCore;
35
using NewsletterCurator.Data;
6+
using NewsletterCurator.Web.Models;
47

58
namespace NewsletterCurator.Web.Controllers
69
{
@@ -13,9 +16,11 @@ public HomeController(NewsletterCuratorContext newsletterCuratorContext)
1316
this.newsletterCuratorContext = newsletterCuratorContext;
1417
}
1518

16-
public IActionResult Index()
19+
public async Task<IActionResult> Index()
1720
{
18-
return View(newsletterCuratorContext.Categories.ToList());
21+
var categoryNewsItemsViewModels = await newsletterCuratorContext.Newsitems.Where(n => n.IsAlreadySent == false).GroupBy(n => n.Category).Select(c => new CategoryNewsItemsViewModel { Category = c.Key, Newsitems = c.ToList() }).ToListAsync();
22+
23+
return View(categoryNewsItemsViewModels);
1924
}
2025
}
2126
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
using System.Collections.Generic;
2+
using NewsletterCurator.Data;
3+
4+
namespace NewsletterCurator.Web.Models
5+
{
6+
public class CategoryNewsItemsViewModel
7+
{
8+
public Category Category { get; set; }
9+
10+
public List<Newsitem> Newsitems { get; set; }
11+
}
12+
}
Lines changed: 29 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,34 @@
1-
@model List<Category>
1+
@model List<CategoryNewsItemsViewModel>
22

33
<div class="container">
4-
<h1>Newsletter Curator</h1>
5-
<ul>
6-
@foreach (var category in Model)
7-
{
8-
<li>@category.ID - @category.Name</li>
9-
}
10-
</ul>
4+
@foreach (var categoryNewsItemsViewModel in Model)
5+
{
6+
<h1>@categoryNewsItemsViewModel.Category.Name</h1>
7+
<table class="table-striped table-bordered table-hover">
8+
<thead>
9+
<tr>
10+
<th width="5%" scope="col"></th>
11+
<th width="15%" scope="col">Title</th>
12+
<th width="80%" scope="col">Summary</th>
13+
</tr>
14+
</thead>
15+
<tbody>
16+
@foreach (var newsItem in categoryNewsItemsViewModel.Newsitems)
17+
{
18+
<tr>
19+
<td><input type="checkbox" /></td>
20+
<td>@newsItem.Title</td>
21+
<td>@newsItem.Summary</td>
22+
</tr>
23+
}
24+
</tbody>
25+
</table>
26+
}
1127

1228
<a href="javascript: document.location='@Url.AbsoluteAction("Add", "Newsitem")?url=' + encodeURIComponent(document.location)">Add to Newsletter</a>
29+
30+
<form method="get" asp-action="Add" asp-controller="Newsitem">
31+
<input type="url" name="url" placeholder="URL" />
32+
<input type="submit" value="Submit"/>
33+
</form>
1334
</div>

0 commit comments

Comments
 (0)