@using System.Net
@using BlazorWebAssemblyVisaApiClient.Common.Exceptions
@using VisaApiClient
@errorDetails
@ChildContent
@code
{
private Modal modal = null!;
private string errorDetails = null!;
[Parameter] public RenderFragment? ChildContent { get; set; }
[Inject] private NavigationManager Nav { get; set; } = null!;
public void Handle(Exception ex)
{
switch (ex)
{
case ApiException
{
StatusCode: (int)HttpStatusCode.Unauthorized or (int)HttpStatusCode.Forbidden
} or NotLoggedInException:
Nav.NavigateTo("/");
modal.Title = "Authorization failed";
errorDetails = "You are not authorized or your authorization is expired";
modal.ShowAsync();
break;
case ApiException problemDetails:
modal.Title = problemDetails.Result.Title!;
errorDetails = problemDetails.Result.Detail!;
modal.ShowAsync();
break;
default:
modal.Title = "Something went wrong";
errorDetails = "Please, text an email with your problem definition on nasrudin@mail.ru";
modal.ShowAsync();
break;
}
}
}