From 48fcb7ce89284651640f65cfd9347e759e29cdf3 Mon Sep 17 00:00:00 2001 From: Benjamin Date: Sat, 16 Nov 2024 22:13:37 +0100 Subject: [PATCH] change site --- pointMaster/Controllers/AccountController.cs | 2 +- .../Controllers/HeaderNavController.cs | 6 +- pointMaster/Controllers/HomeController.cs | 49 +++++++++++- pointMaster/Controllers/PatruljeController.cs | 24 +++++- pointMaster/Controllers/PointController.cs | 37 ++++++++- pointMaster/Views/Home/Index.cshtml | 80 ++++++++++++++++--- pointMaster/Views/Patrulje/Index.cshtml | 3 + pointMaster/Views/Point/GivPoint.cshtml | 4 +- pointMaster/Views/Point/Index.cshtml | 27 ++++++- pointMaster/Views/Point/SkiftPatrulje.cshtml | 4 + 10 files changed, 209 insertions(+), 27 deletions(-) diff --git a/pointMaster/Controllers/AccountController.cs b/pointMaster/Controllers/AccountController.cs index ec0e817..cde5e3f 100644 --- a/pointMaster/Controllers/AccountController.cs +++ b/pointMaster/Controllers/AccountController.cs @@ -13,7 +13,7 @@ namespace pointMaster.Controllers { if (!this.User.Identity!.IsAuthenticated) { - return this.Challenge(OpenIdConnectDefaults.AuthenticationScheme); + return Challenge(OpenIdConnectDefaults.AuthenticationScheme); } return Redirect(redirectUrl); diff --git a/pointMaster/Controllers/HeaderNavController.cs b/pointMaster/Controllers/HeaderNavController.cs index 3724cd6..36aaf4f 100644 --- a/pointMaster/Controllers/HeaderNavController.cs +++ b/pointMaster/Controllers/HeaderNavController.cs @@ -27,9 +27,9 @@ namespace pointMaster.Controllers if (HttpContext.User.Claims.FirstOrDefault(x => x.Value == Roles.Editor) != null) { - vm.links.Add(new NavUrl("Patruljer", "Patrulje")); - vm.links.Add(new NavUrl("Point", "Point")); - vm.links.Add(new NavUrl("Poster", "Poster")); + vm.links.Add(new NavUrl("Patruljer", "/Patrulje")); + vm.links.Add(new NavUrl("Point", "/Point")); + vm.links.Add(new NavUrl("Poster", "/Poster")); } return View(vm); diff --git a/pointMaster/Controllers/HomeController.cs b/pointMaster/Controllers/HomeController.cs index 9bf0f2b..3ec109b 100644 --- a/pointMaster/Controllers/HomeController.cs +++ b/pointMaster/Controllers/HomeController.cs @@ -1,5 +1,7 @@ using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; +using Microsoft.EntityFrameworkCore; +using pointMaster.Data; using pointMaster.Models; using System.Diagnostics; @@ -8,17 +10,49 @@ namespace pointMaster.Controllers public class HomeController : Controller { private readonly ILogger _logger; + private readonly DataContext context; - public HomeController(ILogger logger) + public HomeController(ILogger logger, DataContext context) { _logger = logger; + this.context = context; } - public IActionResult Index() + public async Task Index() { var vm = new HomePageViewModel(); - vm.loggedIn = User.Identity.IsAuthenticated; + var patruljer = await context.Patruljer.Include(p => p.Points).ToListAsync(); + + vm.Samlet = new List(); + vm.Turnout= new List(); + vm.Points = new List(); + + foreach (var patrulje in patruljer) + { + vm.Points.Add(new PatruljePlacering + { + Patrulje = patrulje, + point = patrulje.Points.Sum(x => x.Points), + }); + + vm.Turnout.Add(new PatruljePlacering + { + Patrulje = patrulje, + point = patrulje.Points.Sum(x => x.Turnout), + }); + + vm.Samlet.Add(new PatruljePlacering + { + Patrulje = patrulje, + point = patrulje.Points.Sum(x => x.Points) + patrulje.Points.Sum(x => x.Turnout), + }); + } + + vm.Samlet = vm.Samlet.OrderByDescending(x => x.point).ToList(); + vm.Points = vm.Points.OrderByDescending(x => x.point).ToList(); + vm.Turnout = vm.Turnout.OrderByDescending(x => x.point).ToList(); + return View(vm); } @@ -43,6 +77,13 @@ namespace pointMaster.Controllers public class HomePageViewModel { - public bool loggedIn { get; set; } = false; + public List Samlet { get; set; } = null!; + public List Turnout { get; set; } = null!; + public List Points { get; set; } = null!; + } + public class PatruljePlacering + { + public Patrulje Patrulje { get; set; } = null!; + public int point { get; set; } } } diff --git a/pointMaster/Controllers/PatruljeController.cs b/pointMaster/Controllers/PatruljeController.cs index 234a155..d718bd9 100644 --- a/pointMaster/Controllers/PatruljeController.cs +++ b/pointMaster/Controllers/PatruljeController.cs @@ -20,7 +20,25 @@ namespace pointMaster.Controllers public async Task Index() { var vm = new IndexViewModel(); - vm.patruljeModels = await _context.Patruljer.Include(p => p.PatruljeMedlems).ToListAsync(); + + vm.patruljePoints = new Dictionary(); + vm.patruljeTurnout = new Dictionary(); + + vm.patruljeModels = await _context.Patruljer.Include(p => p.PatruljeMedlems).Include(p => p.Points).ToListAsync(); + + foreach (var patrulje in vm.patruljeModels) + { + if (patrulje.Points == null) + { + vm.patruljePoints.Add(patrulje.Id, 0); + vm.patruljeTurnout.Add(patrulje.Id, 0); + + continue; + } + + vm.patruljePoints.Add(patrulje.Id, patrulje.Points.Sum(x => x.Points)); + vm.patruljeTurnout.Add(patrulje.Id, patrulje.Points.Sum(x => x.Turnout)); + } return View(vm); } @@ -108,7 +126,9 @@ namespace pointMaster.Controllers public class IndexViewModel { - public List patruljeModels { get; set; } + public List patruljeModels { get; set; } = null!; + public Dictionary patruljePoints { get; set; } = null!; + public Dictionary patruljeTurnout { get; set; } = null!; } } } diff --git a/pointMaster/Controllers/PointController.cs b/pointMaster/Controllers/PointController.cs index c0055eb..23403a4 100644 --- a/pointMaster/Controllers/PointController.cs +++ b/pointMaster/Controllers/PointController.cs @@ -16,15 +16,28 @@ namespace pointMaster.Controllers this.context = context; } - public IActionResult Index() + public async Task Index() { - return View(); + var vm = new PointViewModel(); + + vm.points = await context.Points.Include(p => p.Patrulje).Include(p => p.Poster).ToListAsync(); + + return View(vm); } - public IActionResult SkiftPatrulje() + public async Task SkiftPatrulje() { var vm = new SkiftPatruljeViewModel(); + if (string.IsNullOrEmpty(Request.Cookies["Post"])) + { + return RedirectToAction(nameof(SelectPoster)); + } + + int.TryParse(Request.Cookies["Post"], out var postId); + + vm.post = await context.Poster.FindAsync(postId); + vm.Patruljer = context.Patruljer.ToList(); return View(vm); @@ -125,7 +138,18 @@ namespace pointMaster.Controllers Response.Cookies.Append("Post", id.ToString(), cookieOptions); - return RedirectToAction("index", "home"); + return RedirectToAction(nameof(Index)); + } + + public ActionResult DeletePoint(int id) + { + var point = context.Points.FirstOrDefault(p => p.Id == id); + if (point == null) { return NotFound(); } + + context.Points.Remove(point); + context.SaveChanges(); + + return RedirectToAction(nameof(Index)); } } @@ -143,5 +167,10 @@ namespace pointMaster.Controllers public class SkiftPatruljeViewModel { public List Patruljer { get; set; } = null!; + public Post? post { get; set; } = null!; + } + public class PointViewModel + { + public List points { get; set; } = null!; } } diff --git a/pointMaster/Views/Home/Index.cshtml b/pointMaster/Views/Home/Index.cshtml index fdc9b35..a33b58a 100644 --- a/pointMaster/Views/Home/Index.cshtml +++ b/pointMaster/Views/Home/Index.cshtml @@ -6,13 +6,73 @@

Velkommen til PointMaster

- - -@if (Model.loggedIn) -{ - Giv point -} -else -{ - Log ind -} \ No newline at end of file +
+
+
+

Samlet

+ + + + + + + + + + @for (var i = 0; i < Model.Samlet.Count; i++) + { + + + + + + } + +
PatruljePoint
@(i+1)@Model.Samlet[i].Patrulje.Name@Model.Samlet[i].point
+
+
+

Point

+ + + + + + + + + + @for (var i = 0; i < Model.Points.Count; i++) + { + + + + + + } + +
PatruljePoint
@(i+1)@Model.Points[i].Patrulje.Name@Model.Points[i].point
+
+
+

Turnout

+ + + + + + + + + + @for (var i = 0; i < Model.Turnout.Count; i++) + { + + + + + + } + +
PatruljePoint
@(i + 1)@Model.Turnout[i].Patrulje.Name@Model.Turnout[i].point
+
+
+
diff --git a/pointMaster/Views/Patrulje/Index.cshtml b/pointMaster/Views/Patrulje/Index.cshtml index 2c2457b..18ef34f 100644 --- a/pointMaster/Views/Patrulje/Index.cshtml +++ b/pointMaster/Views/Patrulje/Index.cshtml @@ -1,11 +1,14 @@ @model pointMaster.Controllers.PatruljeController.IndexViewModel

Patruljer

+Opret patrulje @foreach (var patrulje in Model.patruljeModels) {

@patrulje.Name

+

Points: @Model.patruljePoints[patrulje.Id]

+

Turnout: @Model.patruljeTurnout[patrulje.Id]

-

@Model.Runde.Name

+

Post: @Model.Runde.Name

-

@Model.Patrulje.Name

+

Patrulje: @Model.Patrulje.Name

Point

diff --git a/pointMaster/Views/Point/Index.cshtml b/pointMaster/Views/Point/Index.cshtml index e1dd794..a7b4ed4 100644 --- a/pointMaster/Views/Point/Index.cshtml +++ b/pointMaster/Views/Point/Index.cshtml @@ -1,5 +1,30 @@ -@* +@model pointMaster.Controllers.PointViewModel; +@* For more information on enabling MVC for empty projects, visit https://go.microsoft.com/fwlink/?LinkID=397860 *@ @{ } +
Giv point + + + + + + + + + + + + @foreach (var point in Model.points) + { + + + + + + + + } + +
PatruljePostPointTurnout
@point.Patrulje.Name@point.Poster.Name@point.Points@point.TurnoutSlet point
\ No newline at end of file diff --git a/pointMaster/Views/Point/SkiftPatrulje.cshtml b/pointMaster/Views/Point/SkiftPatrulje.cshtml index 08c415c..bf411b3 100644 --- a/pointMaster/Views/Point/SkiftPatrulje.cshtml +++ b/pointMaster/Views/Point/SkiftPatrulje.cshtml @@ -1,4 +1,8 @@ @model pointMaster.Controllers.SkiftPatruljeViewModel; +@if (Model.post != null) +{ +

Du giver point som: @Model.post.Name

+}

Vælg patrulje

@foreach (var patrulje in Model.Patruljer) {