mirror of
https://dev.azure.com/TeilRad/sharee.bike%20App/_git/Code
synced 2024-12-23 15:46:29 +01:00
53 lines
1.8 KiB
C#
53 lines
1.8 KiB
C#
using System.Net;
|
|
|
|
namespace ShareeBike.Repository.Exception
|
|
{
|
|
public static class WebExceptionHelper
|
|
{
|
|
/// <summary> Gets if a exception is caused by an error connecting to copri (LAN or mobile data off/ not reachable, proxy, ...).</summary>
|
|
/// <param name="exception">Expection to check.</param>
|
|
/// <returns>True if exception if caused by an connection error. </returns>
|
|
public static bool GetIsConnectFailureException(this System.Exception exception)
|
|
{
|
|
#if !USCSHARP9
|
|
if (!(exception is WebException webException))
|
|
#else
|
|
if (exception is not WebException webException)
|
|
#endif
|
|
{
|
|
return false;
|
|
}
|
|
|
|
return webException.Status == WebExceptionStatus.ConnectFailure // Happens if WLAN and mobile data is off/ Router denies internet access/ ...
|
|
|| webException.Status == WebExceptionStatus.NameResolutionFailure // Happens sometimes when not WLAN and no mobil connection are available (bad connection in lift).
|
|
|| webException.Status == WebExceptionStatus.ReceiveFailure; // Happened when mobile was connected to WLAN
|
|
}
|
|
|
|
/// <summary> Gets if a exception is caused by clicking too fast.</summary>
|
|
/// <param name="exception">Expection to check.</param>
|
|
/// <returns>True if exception if caused by a fast click sequence. </returns>
|
|
public static bool GetIsForbiddenException(this System.Exception exception)
|
|
{
|
|
#if !USCSHARP9
|
|
if (!(exception is WebException webException))
|
|
#else
|
|
if (exception is not WebException webException)
|
|
#endif
|
|
{
|
|
return false;
|
|
}
|
|
|
|
#if !USCSHARP9
|
|
if (!(webException?.Response is HttpWebResponse response))
|
|
#else
|
|
if (webException?.Response is not HttpWebResponse response)
|
|
#endif
|
|
{
|
|
return false;
|
|
}
|
|
|
|
return webException.Status == WebExceptionStatus.ProtocolError
|
|
&& response.StatusCode == HttpStatusCode.Forbidden;
|
|
}
|
|
}
|
|
}
|