@model SummaryViewModel @{ ViewData["Title"] = "School Bus Checker"; var busRoutes = Model.Routes.OrderBy(r => r.BusNumber).ToList(); 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 @busRoutes.Count 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! }
}