Beispiel #1
0
        private ReadCommandOperation <AggregateResult> CreateOperation(IChannelHandle channel)
        {
            var command    = CreateCommand(channel.ConnectionDescription.ServerVersion);
            var serializer = new AggregateResultDeserializer(_resultSerializer);

            return(new ReadCommandOperation <AggregateResult>(CollectionNamespace.DatabaseNamespace, command, serializer, MessageEncoderSettings));
        }
Beispiel #2
0
        private ReadCommandOperation <AggregateResult> CreateOperation(IChannel channel, IBinding binding)
        {
            var databaseNamespace = _collectionNamespace == null ? _databaseNamespace : _collectionNamespace.DatabaseNamespace;
            var command           = CreateCommand(channel.ConnectionDescription, binding.Session);
            var serializer        = new AggregateResultDeserializer(_resultSerializer);

            return(new ReadCommandOperation <AggregateResult>(databaseNamespace, command, serializer, MessageEncoderSettings));
        }
Beispiel #3
0
        // methods
        public async Task <IAsyncCursor <TResult> > ExecuteAsync(IReadBinding binding, CancellationToken cancellationToken)
        {
            Ensure.IsNotNull(binding, "binding");
            EnsureIsReadOnlyPipeline();

            using (var channelSource = await binding.GetReadChannelSourceAsync(cancellationToken).ConfigureAwait(false))
            {
                var command = CreateCommand(channelSource.ServerDescription.Version);

                var serializer = new AggregateResultDeserializer(_resultSerializer);
                var operation  = new ReadCommandOperation <AggregateResult>(CollectionNamespace.DatabaseNamespace, command, serializer, MessageEncoderSettings);

                var result = await operation.ExecuteAsync(channelSource, binding.ReadPreference, cancellationToken).ConfigureAwait(false);

                return(CreateCursor(channelSource, command, result));
            }
        }