private BulkWriteOperationResult ExecuteBatches(RetryableWriteContext context, CancellationToken cancellationToken) { var helper = new BatchHelper(_requests, _writeConcern, _isOrdered); foreach (var batch in helper.GetBatches()) { batch.Result = ExecuteBatch(context, batch, cancellationToken); } return(helper.CreateFinalResultOrThrow(context.Channel)); }
private async Task <BulkWriteOperationResult> ExecuteBatchesAsync(RetryableWriteContext context, CancellationToken cancellationToken) { var helper = new BatchHelper(_requests, _writeConcern, _isOrdered); foreach (var batch in helper.GetBatches()) { batch.Result = await ExecuteBatchAsync(context, batch, cancellationToken).ConfigureAwait(false); } return(helper.CreateFinalResultOrThrow(context.Channel)); }
private async Task <BulkWriteOperationResult> ExecuteBatchesAsync(IChannelHandle channel, CancellationToken cancellationToken) { var decoratedRequests = DecorateRequests(_requests); var helper = new BatchHelper(decoratedRequests, _writeConcern, _isOrdered); foreach (var batch in helper.Batches) { batch.Result = await ExecuteBatchAsync(channel, batch.RequestSource, batch.OriginalIndex, cancellationToken).ConfigureAwait(false); } return(helper.CreateFinalResultOrThrow(channel)); }
private BulkWriteOperationResult ExecuteBatches(IChannelHandle channel, ICoreSessionHandle session, CancellationToken cancellationToken) { var decoratedRequests = DecorateRequests(_requests); var helper = new BatchHelper(decoratedRequests, _writeConcern, _isOrdered); foreach (var batch in helper.Batches) { batch.Result = ExecuteBatch(channel, session, batch.RequestSource, batch.OriginalIndex, cancellationToken); } return(helper.CreateFinalResultOrThrow(channel)); }
private async Task <IEnumerable <WriteConcernResult> > InsertBatchesAsync(IChannelHandle channel, CancellationToken cancellationToken) { var helper = new BatchHelper(_documentSource, _writeConcern, _continueOnError); foreach (var batch in helper.GetBatches()) { try { batch.Result = await ExecuteProtocolAsync(channel, batch, cancellationToken).ConfigureAwait(false); } catch (MongoWriteConcernException ex) { batch.Result = helper.HandleException(ex); if (!_continueOnError) { return(null); } } } return(helper.CreateFinalResultOrThrow()); }