@model SummaryViewModel
@{
ViewData["Title"] = "School Bus Checker";
var busRoutes = Model.Routes.OrderBy(r => r.BusNumber).ToList();
var totalDelays = busRoutes.Count;
var hasDelays = busRoutes.Any();
var userBusRoutes = Model.User.Routes
.GroupJoin(busRoutes, ur => ur.BusNumber, br => br.BusNumber, (ur, routes) => new
{
UserRoute = ur,
RouteDisruptions = routes
})
.OrderBy(r => r.UserRoute.BusNumber)
.ToList();
}
@if (hasDelays)
{
Uh oh! We have @totalDelays @(totalDelays == 1 ? "delay" : "delays")
}
else
{
Good news! No delays today!
}
@foreach (var busRoute in userBusRoutes)
{
var hasUserDelays = busRoute.RouteDisruptions.Any();
@busRoute.UserRoute.Label (@busRoute.UserRoute.BusNumber) -
@if (busRoute.RouteDisruptions.Any())
{
var delayList = string.Join(", ", busRoute.RouteDisruptions
.Select(r => $"{r.Impact} ({r.Schedules}) for {r.Schools}")
.ToArray());
@delayList
}
else
{
@:No Delays!
}
}