Beispiel #1
0
        private async Task HandleAddReadersStage(ITournamentState currentTournament, IGuild guild, SocketMessage message)
        {
            IEnumerable <Task <IGuildUser> > getReaderMembers = message.MentionedUsers
                                                                .Select(user => guild.GetUserAsync(user.Id, options: RequestOptionsSettings.Default));

            IGuildUser[] readerMembers = await Task.WhenAll(getReaderMembers);

            IEnumerable <Reader> readers = readerMembers.Select(member => new Reader()
            {
                Id   = member.Id,
                Name = member.Nickname ?? member.Username
            });

            currentTournament.AddReaders(readers);
            if (!currentTournament.Readers.Any())
            {
                this.Logger.Debug("No readers specified, so staying in the AddReaders stage");
                await message.Channel.SendMessageAsync(
                    BotStrings.NoReadersAddedMinimumReaderCount, options : RequestOptionsSettings.Default);

                return;
            }

            await message.Channel.SendMessageAsync(
                BotStrings.ReadersTotalForTournament(currentTournament.Readers.Count()));

            await this.UpdateStage(currentTournament, TournamentStage.SetRoundRobins, message.Channel);
        }