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); }