// methods internal BsonDocument CreateCommand(ICoreSessionHandle session, ConnectionDescription connectionDescription) { var serverVersion = connectionDescription.ServerVersion; Feature.Collation.ThrowIfNotSupported(serverVersion, _collation); var flags = GetFlags(); var writeConcern = WriteConcernHelper.GetWriteConcernForCommandThatWrites(session, _writeConcern, serverVersion); return(new BsonDocument { { "create", _collectionNamespace.CollectionName }, { "capped", () => _capped.Value, _capped.HasValue }, { "autoIndexId", () => _autoIndexId.Value, _autoIndexId.HasValue }, { "size", () => _maxSize.Value, _maxSize.HasValue }, { "max", () => _maxDocuments.Value, _maxDocuments.HasValue }, { "flags", () => (int)flags.Value, flags.HasValue }, { "storageEngine", () => _storageEngine, _storageEngine != null }, { "indexOptionDefaults", _indexOptionDefaults, _indexOptionDefaults != null }, { "validator", _validator, _validator != null }, { "validationAction", () => _validationAction.Value.ToString().ToLowerInvariant(), _validationAction.HasValue }, { "validationLevel", () => _validationLevel.Value.ToString().ToLowerInvariant(), _validationLevel.HasValue }, { "collation", () => _collation.ToBsonDocument(), _collation != null }, { "writeConcern", writeConcern, writeConcern != null }, { "expireAfterSeconds", () => _expireAfter.Value.TotalSeconds, _expireAfter.HasValue }, { "timeseries", () => _timeSeriesOptions.ToBsonDocument(), _timeSeriesOptions != null } }); }
internal BsonDocument CreateCommand(ICoreSessionHandle session, ConnectionDescription connectionDescription) { var serverVersion = connectionDescription.ServerVersion; Feature.Collation.ThrowIfNotSupported(serverVersion, _collation); var readConcern = _readConcern != null ? ReadConcernHelper.GetReadConcernForCommand(session, connectionDescription, _readConcern) : null; var writeConcern = WriteConcernHelper.GetWriteConcernForCommandThatWrites(session, _writeConcern, serverVersion); return(new BsonDocument { { "aggregate", _collectionNamespace == null ? (BsonValue)1 : _collectionNamespace.CollectionName }, { "pipeline", new BsonArray(_pipeline) }, { "allowDiskUse", () => _allowDiskUse.Value, _allowDiskUse.HasValue }, { "bypassDocumentValidation", () => _bypassDocumentValidation.Value, _bypassDocumentValidation.HasValue&& Feature.BypassDocumentValidation.IsSupported(serverVersion) }, { "maxTimeMS", () => MaxTimeHelper.ToMaxTimeMS(_maxTime.Value), _maxTime.HasValue }, { "collation", () => _collation.ToBsonDocument(), _collation != null }, { "readConcern", readConcern, readConcern != null }, { "writeConcern", writeConcern, writeConcern != null }, { "cursor", new BsonDocument(), serverVersion >= new SemanticVersion(3, 6, 0) }, { "hint", () => _hint, _hint != null }, { "comment", () => _comment, _comment != null } }); }
// private methods internal BsonDocument CreateCommand(ICoreSessionHandle session, ConnectionDescription connectionDescription) { var writeConcern = WriteConcernHelper.GetWriteConcernForCommandThatWrites(session, _writeConcern, connectionDescription.ServerVersion); return(new BsonDocument { { "dropDatabase", 1 }, { "writeConcern", writeConcern, writeConcern != null } }); }
// methods internal BsonDocument CreateCommand(ICoreSessionHandle session, ConnectionDescription connectionDescription) { var writeConcern = WriteConcernHelper.GetWriteConcernForCommandThatWrites(session, _writeConcern, connectionDescription.ServerVersion); return(new BsonDocument { { "renameCollection", _collectionNamespace.FullName }, { "to", _newCollectionNamespace.FullName }, { "dropTarget", () => _dropTarget.Value, _dropTarget.HasValue }, { "writeConcern", writeConcern, writeConcern != null } }); }
// methods internal BsonDocument CreateCommand(ICoreSessionHandle session, ConnectionDescription connectionDescription) { var writeConcern = WriteConcernHelper.GetWriteConcernForCommandThatWrites(session, _writeConcern, connectionDescription.ServerVersion); return(new BsonDocument { { "dropIndexes", _collectionNamespace.CollectionName }, { "index", _indexName }, { "maxTimeMS", () => MaxTimeHelper.ToMaxTimeMS(_maxTime.Value), _maxTime.HasValue }, { "writeConcern", writeConcern, writeConcern != null } }); }
// private methods internal BsonDocument CreateCommand(ICoreSessionHandle session, ConnectionDescription connectionDescription) { var serverVersion = connectionDescription.ServerVersion; var writeConcern = WriteConcernHelper.GetWriteConcernForCommandThatWrites(session, _writeConcern, serverVersion); return(new BsonDocument { { "createIndexes", _collectionNamespace.CollectionName }, { "indexes", new BsonArray(_requests.Select(request => request.CreateIndexDocument(serverVersion))) }, { "maxTimeMS", () => MaxTimeHelper.ToMaxTimeMS(_maxTime.Value), _maxTime.HasValue }, { "writeConcern", writeConcern, writeConcern != null } }); }
public void GetWriteConcernForCommandThatWrites_should_return_expected_result( bool isInTransaction, string writeConcernJson, bool featureIsSupported, string expectedResult) { var session = CreateSession(isInTransaction: isInTransaction); var writeConcern = writeConcernJson == null ? null : WriteConcern.FromBsonDocument(BsonDocument.Parse(writeConcernJson)); var serverVersion = Feature.CommandsThatWriteAcceptWriteConcern.SupportedOrNotSupportedVersion(featureIsSupported); var result = WriteConcernHelper.GetWriteConcernForCommandThatWrites(session, writeConcern, serverVersion); result.Should().Be(expectedResult); }
// private methods internal BsonDocument CreateCommand(ICoreSessionHandle session, ConnectionDescription connectionDescription) { var serverVersion = connectionDescription.ServerVersion; Feature.Views.ThrowIfNotSupported(serverVersion); Feature.Collation.ThrowIfNotSupported(serverVersion, _collation); var writeConcern = WriteConcernHelper.GetWriteConcernForCommandThatWrites(session, _writeConcern, serverVersion); return(new BsonDocument { { "create", _viewName }, { "viewOn", _viewOn }, { "pipeline", new BsonArray(_pipeline) }, { "collation", () => _collation.ToBsonDocument(), _collation != null }, { "writeConcern", writeConcern, writeConcern != null } }); }
// methods /// <inheritdoc/> protected internal override BsonDocument CreateCommand(ICoreSessionHandle session, ConnectionDescription connectionDescription) { var command = base.CreateCommand(session, connectionDescription); var serverVersion = connectionDescription.ServerVersion; if (_bypassDocumentValidation.HasValue && Feature.BypassDocumentValidation.IsSupported(serverVersion)) { command.Add("bypassDocumentValidation", _bypassDocumentValidation.Value); } var writeConcern = WriteConcernHelper.GetWriteConcernForCommandThatWrites(session, _writeConcern, serverVersion); if (writeConcern != null) { command.Add("writeConcern", writeConcern.ToBsonDocument()); } return(command); }