Example #1
0
    public IAsyncEnumerable <Item> GetItemsByIds(
        IReadOnlyCollection <int> itemIds,
        Language?language = default,
        MissingMemberBehavior missingMemberBehavior = default,
        IProgress <ICollectionContext>?progress     = default,
        CancellationToken cancellationToken         = default
        )
    {
        var producer = SplitQuery.Create <int, Item>(
            async(range, ct) =>
        {
            var request = new ItemsByIdsRequest(range)
            {
                Language = language,
                MissingMemberBehavior = missingMemberBehavior
            };
            var response = await request.SendAsync(http, ct).ConfigureAwait(false);
            return(response.Values);
        },
            progress
            );

        return(producer.QueryAsync(itemIds, cancellationToken: cancellationToken));
    }