// protected methods /// <inheritdoc /> protected override BsonDocument CreateCommand(ConnectionDescription connectionDescription, int attempt, long?transactionNumber) { var batchSerializer = CreateBatchSerializer(connectionDescription, attempt); var batchWrapper = new BsonDocumentWrapper(_documents, batchSerializer); BsonDocument writeConcernWrapper = null; if (WriteConcernFunc != null) { var writeConcernSerializer = new DelayedEvaluationWriteConcernSerializer(); writeConcernWrapper = new BsonDocumentWrapper(WriteConcernFunc, writeConcernSerializer); } return(new BsonDocument { { "insert", _collectionNamespace.CollectionName }, { "ordered", _isOrdered }, { "bypassDocumentValidation", () => _bypassDocumentValidation, _bypassDocumentValidation.HasValue }, { "txnNumber", () => transactionNumber.Value, transactionNumber.HasValue }, { "documents", new BsonArray { batchWrapper } }, { "writeConcern", writeConcernWrapper, writeConcernWrapper != null } }); }
// protected methods /// <inheritdoc /> protected override BsonDocument CreateCommand(ConnectionDescription connectionDescription, int attempt, long?transactionNumber) { if (!Feature.Collation.IsSupported(connectionDescription.ServerVersion)) { if (_deletes.Items.Skip(_deletes.Offset).Take(_deletes.Count).Any(d => d.Collation != null)) { throw new NotSupportedException($"Server version {connectionDescription.ServerVersion} does not support collations."); } } var batchSerializer = CreateBatchSerializer(connectionDescription, attempt); var batchWrapper = new BsonDocumentWrapper(_deletes, batchSerializer); BsonDocument writeConcernWrapper = null; if (WriteConcernFunc != null) { var writeConcernSerializer = new DelayedEvaluationWriteConcernSerializer(); writeConcernWrapper = new BsonDocumentWrapper(WriteConcernFunc, writeConcernSerializer); } return(new BsonDocument { { "delete", _collectionNamespace.CollectionName }, { "ordered", _isOrdered }, { "txnNumber", () => transactionNumber.Value, transactionNumber.HasValue }, { "deletes", new BsonArray { batchWrapper } }, { "writeConcern", writeConcernWrapper, writeConcernWrapper != null } }); }