Exemplo n.º 1
0
        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);
        }