Implement Server Connection State Change Logic and Force Logout
This commit is contained in:
parent
85e2c3eb70
commit
61723a2d06
@ -408,12 +408,55 @@ namespace qtcnet_client
|
|||||||
|
|
||||||
private void _gatewayService_OnUserForceLogout(object? sender, EventArgs e)
|
private void _gatewayService_OnUserForceLogout(object? sender, EventArgs e)
|
||||||
{
|
{
|
||||||
throw new NotImplementedException();
|
KryptonMessageBox.Show("The Server Has Logged You Out. Please Try Signing In Again.", "Uh Oh.",
|
||||||
|
KryptonMessageBoxButtons.OK, KryptonMessageBoxIcon.Error);
|
||||||
|
|
||||||
|
_credentialService.DeleteAccessToken();
|
||||||
|
|
||||||
|
SuspendLayout();
|
||||||
|
|
||||||
|
// remove controls
|
||||||
|
Controls.Remove(MainTabControl);
|
||||||
|
Controls.Remove(CurrentProfileControl);
|
||||||
|
|
||||||
|
// dispose of them
|
||||||
|
MainTabControl?.Dispose();
|
||||||
|
MainTabControl = null;
|
||||||
|
CurrentProfileControl?.Dispose();
|
||||||
|
CurrentProfileControl = null;
|
||||||
|
|
||||||
|
// readd login control and branding
|
||||||
|
Size = LoggedOutSize;
|
||||||
|
|
||||||
|
// add branding control
|
||||||
|
BrandingControl = new()
|
||||||
|
{
|
||||||
|
Location = new(-2, -17),
|
||||||
|
Anchor = AnchorStyles.Top | AnchorStyles.Left
|
||||||
|
};
|
||||||
|
|
||||||
|
// add login control
|
||||||
|
LoginControl = new()
|
||||||
|
{
|
||||||
|
Location = new(12, 233)
|
||||||
|
};
|
||||||
|
LoginControl.OnSuccessfulLogin += LoginControl_OnSuccessfulLogin;
|
||||||
|
LoginControl.OnRegisterPressed += LoginControl_OnRegisterPressed;
|
||||||
|
|
||||||
|
Controls.Add(BrandingControl);
|
||||||
|
Controls.Add(LoginControl);
|
||||||
|
|
||||||
|
ResumeLayout(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void _gatewayService_OnServerConfigReceived(object? sender, EventArgs e)
|
private void _gatewayService_OnServerConfigReceived(object? sender, EventArgs e)
|
||||||
{
|
{
|
||||||
throw new NotImplementedException();
|
if(e is ServerConfigEventArgs _args)
|
||||||
|
{
|
||||||
|
if (InvokeRequired)
|
||||||
|
Invoke(() => Text = $"{Text} - Connected To {_args.ServerConfig.Name}");
|
||||||
|
else Text = $"{Text} - Connected To {_args.ServerConfig.Name}";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private async void _gatewayService_OnRefreshContactsListReceived(object? sender, EventArgs e)
|
private async void _gatewayService_OnRefreshContactsListReceived(object? sender, EventArgs e)
|
||||||
@ -449,19 +492,39 @@ namespace qtcnet_client
|
|||||||
await SetupDirectoryUI(_currentUserDirectory.Data);
|
await SetupDirectoryUI(_currentUserDirectory.Data);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void _gatewayService_OnServerDisconnect(object? sender, EventArgs e)
|
private async void _gatewayService_OnServerDisconnect(object? sender, EventArgs e)
|
||||||
{
|
{
|
||||||
throw new NotImplementedException();
|
if(e is ServerConnectionClosedEventArgs _args)
|
||||||
|
{
|
||||||
|
Reconnect: // probably not the best idea to use labels but whatever
|
||||||
|
var _dialogRes = KryptonMessageBox.Show($"Connection To The Server Lost. Would You Like To Try Again?\n\nError - {_args.Error?.Message}", "Uh Oh.",
|
||||||
|
KryptonMessageBoxButtons.YesNo, KryptonMessageBoxIcon.Error);
|
||||||
|
if(_dialogRes == DialogResult.Yes)
|
||||||
|
{
|
||||||
|
// completely restart connection
|
||||||
|
await _gatewayService.StopAsync();
|
||||||
|
await _gatewayService.StartAsync();
|
||||||
|
|
||||||
|
if (_gatewayService.HubConnection?.State == Microsoft.AspNetCore.SignalR.Client.HubConnectionState.Connected)
|
||||||
|
_gatewayService_OnServerReconnected(sender, e);
|
||||||
|
else
|
||||||
|
goto Reconnect;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void _gatewayService_OnServerReconnected(object? sender, EventArgs e)
|
private void _gatewayService_OnServerReconnected(object? sender, EventArgs e)
|
||||||
{
|
{
|
||||||
throw new NotImplementedException();
|
// reenable interactive controls
|
||||||
|
CurrentProfileControl?.Enabled = true;
|
||||||
|
MainTabControl?.Enabled = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void _gatewayService_OnServerReconnecting(object? sender, EventArgs e)
|
private void _gatewayService_OnServerReconnecting(object? sender, EventArgs e)
|
||||||
{
|
{
|
||||||
throw new NotImplementedException();
|
// disable interactive controls
|
||||||
|
CurrentProfileControl?.Enabled = false;
|
||||||
|
MainTabControl?.Enabled = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void _gatewayService_OnDirectMessageReceived(object? sender, EventArgs e)
|
private void _gatewayService_OnDirectMessageReceived(object? sender, EventArgs e)
|
||||||
@ -529,17 +592,17 @@ namespace qtcnet_client
|
|||||||
|
|
||||||
// subscribe to gateway events
|
// subscribe to gateway events
|
||||||
|
|
||||||
//_gatewayService.OnServerReconnecting += _gatewayService_OnServerReconnecting;
|
_gatewayService.OnServerReconnecting += _gatewayService_OnServerReconnecting;
|
||||||
//_gatewayService.OnServerReconnected += _gatewayService_OnServerReconnected;
|
_gatewayService.OnServerReconnected += _gatewayService_OnServerReconnected;
|
||||||
//_gatewayService.OnServerDisconnect += _gatewayService_OnServerDisconnect;
|
_gatewayService.OnServerDisconnect += _gatewayService_OnServerDisconnect;
|
||||||
//_gatewayService.OnDirectMessageReceived += _gatewayService_OnDirectMessageReceived;
|
//_gatewayService.OnDirectMessageReceived += _gatewayService_OnDirectMessageReceived;
|
||||||
_gatewayService.OnRoomMessageReceived += _gatewayService_OnRoomMessageReceived;
|
_gatewayService.OnRoomMessageReceived += _gatewayService_OnRoomMessageReceived;
|
||||||
_gatewayService.OnRoomUserListReceived += _gatewayService_OnRoomUserListReceived;
|
_gatewayService.OnRoomUserListReceived += _gatewayService_OnRoomUserListReceived;
|
||||||
_gatewayService.OnRefreshUserListsReceived += _gatewayService_OnRefreshUserListReceived;
|
_gatewayService.OnRefreshUserListsReceived += _gatewayService_OnRefreshUserListReceived;
|
||||||
//_gatewayService.OnRefreshRoomListReceived += _gatewayService_OnRefreshRoomListReceived;
|
_gatewayService.OnRefreshRoomListReceived += _gatewayService_OnRefreshRoomListReceived;
|
||||||
_gatewayService.OnRefreshContactsListReceived += _gatewayService_OnRefreshContactsListReceived;
|
_gatewayService.OnRefreshContactsListReceived += _gatewayService_OnRefreshContactsListReceived;
|
||||||
//_gatewayService.OnServerConfigReceived += _gatewayService_OnServerConfigReceived;
|
_gatewayService.OnServerConfigReceived += _gatewayService_OnServerConfigReceived;
|
||||||
//_gatewayService.OnUserForceLogout += _gatewayService_OnUserForceLogout;
|
_gatewayService.OnUserForceLogout += _gatewayService_OnUserForceLogout;
|
||||||
|
|
||||||
// start connection
|
// start connection
|
||||||
await _gatewayService.StartAsync();
|
await _gatewayService.StartAsync();
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user