@statusPage.Name
Status
@if (monitors.All(p => p.Status is MonitorStatus.Up or MonitorStatus.Validating)) {
@RenderBody()
All services are online
} else if (monitors.All(p => p.Status is MonitorStatus.Down or MonitorStatus.Recovering)) {All services are down
} else {Some services are down
}Last updated @DbProxy.LastUpdated
Current status by service
@foreach (var (monitor, displayName) in statusPage.Monitors) {
}
@if (monitor.Status is MonitorStatus.Up) {
@displayName
@monitor.Message
}
else if (monitor.Status is MonitorStatus.Validating) {
@displayName
@monitor.Message - @monitor.LastValue
}
else if (monitor.Status is MonitorStatus.Recovering) {
@displayName
@monitor.Message
}
else {
@displayName
@monitor.Message - @monitor.LastValue
}
@switch(monitor.Status) {
case MonitorStatus.Unknown:
@Html.Raw("Unknown");
break;
case MonitorStatus.Up:
@Html.Raw("Operational");
break;
case MonitorStatus.Down:
@Html.Raw("Down");
break;
case MonitorStatus.Validating:
@Html.Raw("Validating incident");
break;
case MonitorStatus.Recovering:
@Html.Raw("Validating recovery");
break;
default:
throw new ArgumentOutOfRangeException();
}