public async Task JoinGameAsync(GameInfoDto game) { ChannelIdentifier channelIdentifier = _hashService.GenerateChannelIdentifier(game.Hash); var channel = new Channel() { Id = channelIdentifier.Id, Expiry = DateTimeOffset.UtcNow.AddMinutes(45).ToUnixTimeSeconds(), Name = channelIdentifier.Name }; await _channelPersistence.PersistChannelAsync(channel); await _channelPersistence.PersistUserInChannelAsync(channel.Id, game.User); var joinedGameEvent = new OnJoinedGameEvent() { ChannelName = channel.Name, VoiceUserId = game.User.Discord.UserId }; await _messageBus.PublishAsync(joinedGameEvent); }