Fixed PageDialoge Threads

This commit is contained in:
TheJoKlLa 2022-05-31 12:35:15 +02:00
parent aa29d7d733
commit f6105f10ac
4 changed files with 74 additions and 20 deletions

View File

@ -32,10 +32,28 @@ namespace Borepin.Base
{
case ConnectionStatusChange.Connected:
IsConnected = true;
try
{
await LoadAPIData().ConfigureAwait(false);
}
catch
{
IsConnected = false;
await _API.Disconnect().ConfigureAwait(false);
_API.UnbindAllEvents();
}
break;
case ConnectionStatusChange.Reconnected:
try
{
await ReloadAPIData().ConfigureAwait(false);
}
catch
{
IsConnected = false;
await _API.Disconnect().ConfigureAwait(false);
_API.UnbindAllEvents();
}
break;
case ConnectionStatusChange.ConnectionLoss:
try
@ -83,9 +101,18 @@ namespace Borepin.Base
await base.OnNavigatedToVirtual(parameters).ConfigureAwait(false);
if(_API.IsConnected)
{
try
{
await LoadAPIData().ConfigureAwait(false);
}
catch
{
IsConnected = false;
await _API.Disconnect().ConfigureAwait(false);
_API.UnbindAllEvents();
}
}
}
#endregion
}

View File

@ -89,7 +89,11 @@ namespace Borepin.PageModel.AddServerProcess
if (_API.IsConnected)
{
await _API.Disconnect().ConfigureAwait(false);
if (_API.IsConnected)
{
await _API.Disconnect().ConfigureAwait(true);
_API.UnbindAllEvents();
}
}
try
@ -97,24 +101,33 @@ namespace Borepin.PageModel.AddServerProcess
await _API.Connect(_ConnectionData).ConfigureAwait(false);
}
catch (ConnectingFailedException)
{
Device.BeginInvokeOnMainThread(async () =>
{
await _PageDialogService.DisplayAlertAsync("Connection failed", "Unable to connect to server.", "Ok").ConfigureAwait(false);
IsBusy = false;
});
return;
}
catch (AuthenticationFailedException)
{
Device.BeginInvokeOnMainThread(async () =>
{
await _PageDialogService.DisplayAlertAsync("Connection failed", "Unable to authenticate to server.", "Ok").ConfigureAwait(false);
IsBusy = false;
});
return;
}
catch(Exception)
{
Device.BeginInvokeOnMainThread(async () =>
{
await _PageDialogService.DisplayAlertAsync("Connection failed", "Unexpected Error.", "Ok").ConfigureAwait(false);
IsBusy = false;
});
return;
}

View File

@ -89,10 +89,14 @@ namespace Borepin.PageModel.AddServerProcess
};
}
catch (UriFormatException)
{
Device.BeginInvokeOnMainThread(async () =>
{
await _PageDialogService.DisplayAlertAsync("Connection failed", "Server address is invaild.", "Ok").ConfigureAwait(false);
IsBusy = false;
});
return;
}
@ -102,10 +106,14 @@ namespace Borepin.PageModel.AddServerProcess
await api.TestConnection(_ConnectionData).ConfigureAwait(false);
}
catch(ConnectingFailedException)
{
Device.BeginInvokeOnMainThread(async () =>
{
await _PageDialogService.DisplayAlertAsync("Connection failed", "Unable to connect to server.", "Ok").ConfigureAwait(false);
IsBusy = false;
});
return;
}

View File

@ -128,20 +128,26 @@ namespace Borepin.PageModel
try
{
await _API.Connect(Connection_Item).ConfigureAwait(true);
await _API.Connect(Connection_Item).ConfigureAwait(false);
}
catch(ConnectingFailedException)
{
Device.BeginInvokeOnMainThread(async () =>
{
await _PageDialogService.DisplayAlertAsync("Connection failed", "Unable to connect to server.", "Ok").ConfigureAwait(false);
IsBusy = false;
});
return;
}
catch(AuthenticationFailedException)
{
Device.BeginInvokeOnMainThread(async () =>
{
await _PageDialogService.DisplayAlertAsync("Connection failed", "Unable to authenticate to server.", "Ok").ConfigureAwait(false);
IsBusy = false;
});
return;
}