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);
        }
예제 #2
0
        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;
        }
예제 #3
0
        // 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);
        }
예제 #4
0
        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);
        }