public override Task <TProjection> FindOneAndDeleteAsync <TProjection>(IClientSessionHandle session, FilterDefinition <TDocument> filter, FindOneAndDeleteOptions <TDocument, TProjection> options = null, CancellationToken cancellationToken = default(CancellationToken)) { return(_wrappedCollection.FindOneAndDeleteAsync(session, CombineFilters(filter), options, cancellationToken)); }
/// <summary> /// Finds a single document and deletes it atomically. /// </summary> /// <typeparam name="TDocument">The type of the document.</typeparam> /// <typeparam name="TResult">The type of the result.</typeparam> /// <param name="collection">The collection.</param> /// <param name="filter">The filter.</param> /// <param name="options">The options.</param> /// <param name="cancellationToken">The cancellation token.</param> /// <returns> /// The returned document. /// </returns> public static Task <TResult> FindOneAndDeleteAsync <TDocument, TResult>(this IMongoCollection <TDocument> collection, Expression <Func <TDocument, bool> > filter, FindOneAndDeleteOptions <TResult> options = null, CancellationToken cancellationToken = default(CancellationToken)) { Ensure.IsNotNull(collection, "collection"); Ensure.IsNotNull(filter, "filter"); return(collection.FindOneAndDeleteAsync(filter, options, cancellationToken)); }
public override Task <TProjection> FindOneAndDeleteAsync <TProjection>(FilterDefinition <TDocument> filter, FindOneAndDeleteOptions <TDocument, TProjection> options, CancellationToken cancellationToken) { Ensure.IsNotNull(filter, nameof(filter)); options = options ?? new FindOneAndDeleteOptions <TDocument, TProjection>(); var projection = options.Projection ?? new ClientSideDeserializationProjectionDefinition <TDocument, TProjection>(); var renderedProjection = projection.Render(_documentSerializer, _settings.SerializerRegistry); var operation = new FindOneAndDeleteOperation <TProjection>( _collectionNamespace, filter.Render(_documentSerializer, _settings.SerializerRegistry), new FindAndModifyValueDeserializer <TProjection>(renderedProjection.ProjectionSerializer), _messageEncoderSettings) { MaxTime = options.MaxTime, Projection = renderedProjection.Document, Sort = options.Sort == null ? null : options.Sort.Render(_documentSerializer, _settings.SerializerRegistry) }; return(ExecuteWriteOperationAsync(operation, cancellationToken)); }
public override TProjection FindOneAndDelete <TProjection>(FilterDefinition <TDocument> filter, FindOneAndDeleteOptions <TDocument, TProjection> options = null, CancellationToken cancellationToken = default(CancellationToken)) { return(_wrappedCollection.FindOneAndDelete(CombineFilters(filter), options, cancellationToken)); }
/// <inheritdoc /> public abstract Task <TProjection> FindOneAndDeleteAsync <TProjection>(FilterDefinition <TDocument> filter, FindOneAndDeleteOptions <TDocument, TProjection> options = null, CancellationToken cancellationToken = default(CancellationToken));
/// <inheritdoc /> public virtual TProjection FindOneAndDelete <TProjection>(FilterDefinition <TDocument> filter, FindOneAndDeleteOptions <TDocument, TProjection> options = null, CancellationToken cancellationToken = default(CancellationToken)) { throw new NotImplementedException(); }
private FindOneAndDeleteOperation <TProjection> CreateFindOneAndDeleteOperation <TProjection>(FilterDefinition <TDocument> filter, FindOneAndDeleteOptions <TDocument, TProjection> options) { var projection = options.Projection ?? new ClientSideDeserializationProjectionDefinition <TDocument, TProjection>(); var renderedProjection = projection.Render(_documentSerializer, _settings.SerializerRegistry); return(new FindOneAndDeleteOperation <TProjection>( _collectionNamespace, filter.Render(_documentSerializer, _settings.SerializerRegistry), new FindAndModifyValueDeserializer <TProjection>(renderedProjection.ProjectionSerializer), _messageEncoderSettings) { Collation = options.Collation, MaxTime = options.MaxTime, Projection = renderedProjection.Document, Sort = options.Sort == null ? null : options.Sort.Render(_documentSerializer, _settings.SerializerRegistry), WriteConcern = _settings.WriteConcern }); }
public override Task <TProjection> FindOneAndDeleteAsync <TProjection>(FilterDefinition <TDocument> filter, FindOneAndDeleteOptions <TDocument, TProjection> options, CancellationToken cancellationToken) { Ensure.IsNotNull(filter, nameof(filter)); options = options ?? new FindOneAndDeleteOptions <TDocument, TProjection>(); var operation = CreateFindOneAndDeleteOperation <TProjection>(filter, options); return(ExecuteWriteOperationAsync(operation, cancellationToken)); }
public Task <TDocument> FindOneAndDeleteAsync(object filter, FindOneAndDeleteOptions <TDocument> options, CancellationToken cancellationToken) { return(FindOneAndDeleteAsync <TDocument>(filter, options, cancellationToken)); }