public static Task <IReadOnlyList <IMember> > FetchMembersAsync(this IRestClient client, Snowflake guildId, int limit = 1000, Snowflake?startFromId = null, IRestRequestOptions options = null) { if (limit == 0) { return(Task.FromResult(ReadOnlyList <IMember> .Empty)); } if (limit <= 1000) { return(client.InternalFetchMembersAsync(guildId, limit, startFromId, options)); } var enumerator = client.EnumerateMembers(guildId, limit, startFromId, options); return(enumerator.FlattenAsync()); }
public static Task <IReadOnlyList <IMember> > FetchMembersAsync(this IRestClient client, Snowflake guildId, int limit = Discord.Limits.Rest.FetchMembersPageSize, Snowflake?startFromId = null, IRestRequestOptions options = null, CancellationToken cancellationToken = default) { Guard.IsGreaterThanOrEqualTo(limit, 0); if (limit == 0) { return(Task.FromResult(ReadOnlyList <IMember> .Empty)); } if (limit <= 1000) { return(client.InternalFetchMembersAsync(guildId, limit, startFromId, options, cancellationToken)); } var enumerator = client.EnumerateMembers(guildId, limit, startFromId, options); return(enumerator.FlattenAsync(cancellationToken)); }