public async Task SignOutAsync(Guid invocationId, PlayerSignOutRequest request) { try { await _signInService.SignOutAsync(request); await ResolveAsync(Clients.Caller, nameof(SignOutAsync), invocationId); } catch (Exception ex) { await RejectAsync(Clients.Caller, nameof(SignOutAsync), invocationId, ex.Message); } }
public async Task SignOutAsync(PlayerSignOutRequest request) { var playerId = request?.PlayerId ?? throw new ArgumentNullException(nameof(request.PlayerId)); if (!_players.ContainsKey(playerId)) { throw new KeyNotFoundException($"Player id not found ({playerId})"); } var player = _players[playerId]; _players.Remove(playerId); await _eventBus.PublishAsync(PlayerSignedOutDomainEvent.FromPlayer(player)); }
public Task SignOutAsync(PlayerSignOutRequest request) => CreateInvocationAsync("SignOutAsync", request);