AacpsBusAlert/BinaryDad.AacpsBusAlert.Web/Views/Home/Index.cshtml

49 lines
1.3 KiB
Plaintext
Raw Normal View History

2022-10-05 02:23:14 +00:00
@model SummaryViewModel
@{
2022-11-28 14:47:26 +00:00
ViewData["Title"] = "School Bus Checker";
2022-10-05 02:23:14 +00:00
var busRoutes = Model.Routes.OrderBy(r => r.BusNumber).ToList();
2023-10-18 16:58:04 +00:00
var totalDelays = busRoutes.Count;
2022-10-05 02:23:14 +00:00
var hasDelays = busRoutes.Any();
2022-10-14 01:36:33 +00:00
var userBusRoutes = Model.User.Routes
2022-11-28 14:47:06 +00:00
.GroupJoin(busRoutes, ur => ur.BusNumber, br => br.BusNumber, (ur, routes) => new
{
UserRoute = ur,
RouteDisruptions = routes
})
.OrderBy(r => r.UserRoute.BusNumber)
2022-10-14 01:36:33 +00:00
.ToList();
2022-09-15 11:08:53 +00:00
}
2022-10-05 02:23:14 +00:00
@if (hasDelays)
{
2023-10-18 16:58:04 +00:00
<h3 class="alert-heading">Uh oh! We have @totalDelays @(totalDelays == 1 ? "delay" : "delays")</h3>
2022-10-05 02:23:14 +00:00
}
else
{
2022-11-28 14:47:06 +00:00
<h3 class="alert-heading">Good news! No delays today!</h3>
2022-10-05 02:23:14 +00:00
}
2022-10-14 01:36:33 +00:00
@foreach (var busRoute in userBusRoutes)
{
2022-11-28 14:47:06 +00:00
var hasUserDelays = busRoute.RouteDisruptions.Any();
2022-10-05 02:23:14 +00:00
2022-11-28 14:47:06 +00:00
<div class="alert @(hasUserDelays ? "alert-danger" : "alert-success")">
<strong>@busRoute.UserRoute.Label (@busRoute.UserRoute.BusNumber) - </strong>
@if (busRoute.RouteDisruptions.Any())
{
var delayList = string.Join(", ", busRoute.RouteDisruptions
.Select(r => $"{r.Impact} ({r.Schedules}) for {r.Schools}")
.ToArray());
<strong>@delayList</strong>
}
else
{
@:No Delays!
}
</div>
}