public static Task <IReadOnlyList <IMessage> > FetchMessagesAsync(this IRestClient client, Snowflake channelId, int limit = 100, RetrievalDirection direction = RetrievalDirection.Before, Snowflake?startFromId = null, IRestRequestOptions options = null) { if (limit == 0) { return(Task.FromResult(ReadOnlyList <IMessage> .Empty)); } if (limit <= 100) { return(client.InternalFetchMessagesAsync(channelId, limit, direction, startFromId, options)); } var enumerable = client.EnumerateMessages(channelId, limit, direction, startFromId, options); return(enumerable.FlattenAsync()); }
public static Task <IReadOnlyList <IMessage> > FetchMessagesAsync(this IRestClient client, Snowflake channelId, int limit = Discord.Limits.Rest.FetchMessagesPageSize, RetrievalDirection direction = RetrievalDirection.Before, Snowflake?startFromId = null, IRestRequestOptions options = null, CancellationToken cancellationToken = default) { if (limit == 0) { return(Task.FromResult(ReadOnlyList <IMessage> .Empty)); } if (limit <= Discord.Limits.Rest.FetchMessagesPageSize) { return(client.InternalFetchMessagesAsync(channelId, limit, direction, startFromId, options, cancellationToken)); } var enumerable = client.EnumerateMessages(channelId, limit, direction, startFromId, options); return(enumerable.FlattenAsync(cancellationToken)); }