106 lines
3.4 KiB
Plaintext
106 lines
3.4 KiB
Plaintext
@using Moonlight.App.Services.Interop
|
|
@using Moonlight.App.Exceptions
|
|
@using Moonlight.App.Services
|
|
@using Logging.Net
|
|
@using Moonlight.App.ApiClients.CloudPanel
|
|
@using Moonlight.App.ApiClients.Daemon
|
|
@using Moonlight.App.ApiClients.Modrinth
|
|
@using Moonlight.App.ApiClients.Wings
|
|
@inherits ErrorBoundaryBase
|
|
|
|
@inject AlertService AlertService
|
|
@inject ConfigService ConfigService
|
|
@inject SmartTranslateService SmartTranslateService
|
|
|
|
@if (Crashed)
|
|
{
|
|
<div class="card card-flush h-md-100">
|
|
<div class="card-body d-flex flex-column justify-content-between mt-9 bgi-no-repeat bgi-size-cover bgi-position-x-center pb-0">
|
|
<div class="mb-10">
|
|
<div class="fs-2hx fw-bold text-gray-800 text-center mb-13">
|
|
<span class="me-2">
|
|
<TL>Ooops. This page is crashed</TL>
|
|
</span>
|
|
</div>
|
|
<div class="text-center">
|
|
<TL>This page is crashed. The error has been reported to the moonlight team. Meanwhile you can try reloading the page</TL>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
}
|
|
else
|
|
{
|
|
@ChildContent
|
|
}
|
|
|
|
@code
|
|
{
|
|
private bool Crashed = false;
|
|
|
|
protected override async Task OnErrorAsync(Exception exception)
|
|
{
|
|
if (ConfigService.DebugMode)
|
|
{
|
|
Logger.Warn(exception);
|
|
}
|
|
|
|
if (exception is DisplayException displayException)
|
|
{
|
|
await AlertService.Error(
|
|
SmartTranslateService.Translate(displayException.Message)
|
|
);
|
|
}
|
|
else if (exception is CloudflareException cloudflareException)
|
|
{
|
|
await AlertService.Error(
|
|
SmartTranslateService.Translate("Error from cloudflare api"),
|
|
cloudflareException.Message
|
|
);
|
|
}
|
|
else if (exception is WingsException wingsException)
|
|
{
|
|
await AlertService.Error(
|
|
SmartTranslateService.Translate("Error from wings"),
|
|
wingsException.Message
|
|
);
|
|
|
|
//TODO: Error log service
|
|
|
|
Logger.Warn($"Wings exception status code: {wingsException.StatusCode}");
|
|
}
|
|
else if (exception is DaemonException daemonException)
|
|
{
|
|
await AlertService.Error(
|
|
SmartTranslateService.Translate("Error from daemon"),
|
|
daemonException.Message
|
|
);
|
|
|
|
Logger.Warn($"Wings exception status code: {daemonException.StatusCode}");
|
|
}
|
|
else if (exception is ModrinthException modrinthException)
|
|
{
|
|
await AlertService.Error(
|
|
SmartTranslateService.Translate("Error from modrinth"),
|
|
modrinthException.Message
|
|
);
|
|
}
|
|
else if (exception is CloudPanelException cloudPanelException)
|
|
{
|
|
await AlertService.Error(
|
|
SmartTranslateService.Translate("Error from cloud panel"),
|
|
cloudPanelException.Message
|
|
);
|
|
}
|
|
else if (exception is NotImplementedException)
|
|
{
|
|
await AlertService.Error(SmartTranslateService.Translate("This function is not implemented"));
|
|
}
|
|
else
|
|
{
|
|
Logger.Warn(exception);
|
|
Crashed = true;
|
|
await InvokeAsync(StateHasChanged);
|
|
}
|
|
}
|
|
} |