public static ChangeStreamOperation <TResult> CreateChangeStreamOperation <TResult, TDocument>( IMongoCollection <TDocument> collection, PipelineDefinition <ChangeStreamDocument <TDocument>, TResult> pipeline, IBsonSerializer <TDocument> documentSerializer, LinqProvider linqProvider, ChangeStreamOptions options, ReadConcern readConcern, MessageEncoderSettings messageEncoderSettings, bool retryRequested) { var renderedPipeline = RenderPipeline(pipeline, documentSerializer, linqProvider); var operation = new ChangeStreamOperation <TResult>( collection.CollectionNamespace, renderedPipeline.Documents, renderedPipeline.OutputSerializer, messageEncoderSettings) { RetryRequested = retryRequested }; SetOperationOptions(operation, options, readConcern); return(operation); }
private static void SetOperationOptions <TResult>( ChangeStreamOperation <TResult> operation, ChangeStreamOptions options, ReadConcern readConcern) { options = options ?? new ChangeStreamOptions(); operation.BatchSize = options.BatchSize; operation.Collation = options.Collation; operation.FullDocument = options.FullDocument; operation.MaxAwaitTime = options.MaxAwaitTime; operation.ReadConcern = readConcern; operation.ResumeAfter = options.ResumeAfter; operation.StartAtOperationTime = options.StartAtOperationTime; }
// public static methods public static ChangeStreamOperation <TResult> CreateChangeStreamOperation <TResult>( PipelineDefinition <ChangeStreamDocument <BsonDocument>, TResult> pipeline, ChangeStreamOptions options, ReadConcern readConcern, MessageEncoderSettings messageEncoderSettings) { var renderedPipeline = RenderPipeline(pipeline, BsonDocumentSerializer.Instance); var operation = new ChangeStreamOperation <TResult>( renderedPipeline.Documents, renderedPipeline.OutputSerializer, messageEncoderSettings); SetOperationOptions(operation, options, readConcern); return(operation); }
public static ChangeStreamOperation <TResult> CreateChangeStreamOperation <TResult>( IMongoDatabase database, PipelineDefinition <ChangeStreamDocument <BsonDocument>, TResult> pipeline, ChangeStreamOptions options, ReadConcern readConcern, MessageEncoderSettings messageEncoderSettings, bool retryRequested) { var renderedPipeline = RenderPipeline(pipeline, BsonDocumentSerializer.Instance); var operation = new ChangeStreamOperation <TResult>( database.DatabaseNamespace, renderedPipeline.Documents, renderedPipeline.OutputSerializer, messageEncoderSettings) { RetryRequested = retryRequested }; SetOperationOptions(operation, options, readConcern); return(operation); }