Exemplo n.º 1
0
        /// <inheritdoc />
        public async Task <List <TSource> > FindManyAsync(IReadOnlyCollection <string> docIds, CancellationToken cancellationToken = default)
        {
            BulkGetResult <TSource> bulkGetResult = await NewRequest()
                                                    .AppendPathSegment("_bulk_get")
                                                    .PostJsonAsync(new
            {
                docs = docIds.Select(id => new { id })
            }, cancellationToken)
                                                    .ReceiveJson <BulkGetResult <TSource> >()
                                                    .SendRequestAsync()
                                                    .ConfigureAwait(false);

            var documents = bulkGetResult.Results
                            .SelectMany(r => r.Docs)
                            .Select(d => d.Item)
                            .ToList();

            foreach (TSource document in documents)
            {
                if (document != null)
                {
                    InitAttachments(document);
                }
            }

            return(documents);
        }
Exemplo n.º 2
0
        /// Finds all documents with given IDs.
        /// </summary>
        /// <param name="docIds">The collection of documents IDs.</param>
        /// <returns></returns>
        public async Task <List <TSource> > FindManyAsync(IEnumerable <string> docIds)
        {
            BulkGetResult <TSource> bulkGetResult = await NewRequest()
                                                    .AppendPathSegment("_bulk_get")
                                                    .PostJsonAsync(new
            {
                docs = docIds.Select(id => new { id })
            }).ReceiveJson <BulkGetResult <TSource> >()
                                                    .SendRequestAsync()
                                                    .ConfigureAwait(false);

            return(bulkGetResult.Results.SelectMany(r => r.Docs).Select(d => d.Item).ToList());
        }