using System; using System.Linq.Expressions; using System.Threading; using System.Threading.Tasks; using MongoDB.Driver; using MongoDbGenericRepository.DataAccess.Update; using MongoDbGenericRepository.Models; namespace MongoDbGenericRepository { public abstract partial class BaseMongoRepository : IBaseMongoRepository_Update_ClientSession { /// public virtual async Task UpdateOneAsync(IClientSessionHandle session, TDocument modifiedDocument) where TDocument : IDocument where TKey : IEquatable { return await UpdateOneAsync(session, modifiedDocument, CancellationToken.None); } /// public virtual async Task UpdateOneAsync( IClientSessionHandle session, TDocument modifiedDocument, CancellationToken cancellationToken) where TDocument : IDocument where TKey : IEquatable { return await MongoDbUpdater.UpdateOneAsync(session, modifiedDocument, cancellationToken); } /// public virtual bool UpdateOne(IClientSessionHandle session, TDocument modifiedDocument) where TDocument : IDocument where TKey : IEquatable { return UpdateOne(session, modifiedDocument, CancellationToken.None); } /// public virtual bool UpdateOne(IClientSessionHandle session, TDocument modifiedDocument, CancellationToken cancellationToken) where TDocument : IDocument where TKey : IEquatable { return MongoDbUpdater.UpdateOne(session, modifiedDocument, cancellationToken); } /// public virtual async Task UpdateOneAsync( IClientSessionHandle session, TDocument documentToModify, UpdateDefinition update) where TDocument : IDocument where TKey : IEquatable { return await UpdateOneAsync(session, documentToModify, update, CancellationToken.None); } /// public virtual async Task UpdateOneAsync( IClientSessionHandle session, TDocument documentToModify, UpdateDefinition update, CancellationToken cancellationToken) where TDocument : IDocument where TKey : IEquatable { return await MongoDbUpdater.UpdateOneAsync(session, documentToModify, update, cancellationToken); } /// public virtual bool UpdateOne(IClientSessionHandle session, TDocument documentToModify, UpdateDefinition update) where TDocument : IDocument where TKey : IEquatable { return UpdateOne(session, documentToModify, update, CancellationToken.None); } /// public virtual bool UpdateOne( IClientSessionHandle session, TDocument documentToModify, UpdateDefinition update, CancellationToken cancellationToken) where TDocument : IDocument where TKey : IEquatable { return MongoDbUpdater.UpdateOne(session, documentToModify, update, cancellationToken); } /// public virtual async Task UpdateOneAsync( IClientSessionHandle session, TDocument documentToModify, Expression> field, TField value) where TDocument : IDocument where TKey : IEquatable { return await UpdateOneAsync(session, documentToModify, field, value, CancellationToken.None); } /// public virtual async Task UpdateOneAsync( IClientSessionHandle session, TDocument documentToModify, Expression> field, TField value, CancellationToken cancellationToken) where TDocument : IDocument where TKey : IEquatable { return await MongoDbUpdater.UpdateOneAsync(session, documentToModify, field, value, cancellationToken); } /// public virtual bool UpdateOne( IClientSessionHandle session, TDocument documentToModify, Expression> field, TField value) where TDocument : IDocument where TKey : IEquatable { return UpdateOne(session, documentToModify, field, value, CancellationToken.None); } /// public virtual bool UpdateOne( IClientSessionHandle session, TDocument documentToModify, Expression> field, TField value, CancellationToken cancellationToken) where TDocument : IDocument where TKey : IEquatable { return MongoDbUpdater.UpdateOne(session, documentToModify, field, value, cancellationToken); } /// public virtual async Task UpdateOneAsync( IClientSessionHandle session, FilterDefinition filter, Expression> field, TField value) where TDocument : IDocument where TKey : IEquatable { return await UpdateOneAsync(session, filter, field, value, null, CancellationToken.None); } /// public virtual async Task UpdateOneAsync( IClientSessionHandle session, FilterDefinition filter, Expression> field, TField value, CancellationToken cancellationToken) where TDocument : IDocument where TKey : IEquatable { return await UpdateOneAsync(session, filter, field, value, null, cancellationToken); } /// public virtual async Task UpdateOneAsync( IClientSessionHandle session, FilterDefinition filter, Expression> field, TField value, string partitionKey) where TDocument : IDocument where TKey : IEquatable { return await UpdateOneAsync(session, filter, field, value, partitionKey, CancellationToken.None); } /// public virtual async Task UpdateOneAsync( IClientSessionHandle session, FilterDefinition filter, Expression> field, TField value, string partitionKey, CancellationToken cancellationToken) where TDocument : IDocument where TKey : IEquatable { return await MongoDbUpdater.UpdateOneAsync(session, filter, field, value, partitionKey, cancellationToken); } /// public virtual async Task UpdateOneAsync( IClientSessionHandle session, Expression> filter, Expression> field, TField value) where TDocument : IDocument where TKey : IEquatable { return await UpdateOneAsync(session, filter, field, value, null, CancellationToken.None); } /// public virtual async Task UpdateOneAsync( IClientSessionHandle session, Expression> filter, Expression> field, TField value, CancellationToken cancellationToken) where TDocument : IDocument where TKey : IEquatable { return await UpdateOneAsync(session, filter, field, value, null, cancellationToken); } /// public virtual async Task UpdateOneAsync( IClientSessionHandle session, Expression> filter, Expression> field, TField value, string partitionKey) where TDocument : IDocument where TKey : IEquatable { return await UpdateOneAsync(session, filter, field, value, partitionKey, CancellationToken.None); } /// public virtual async Task UpdateOneAsync( IClientSessionHandle session, Expression> filter, Expression> field, TField value, string partitionKey, CancellationToken cancellationToken) where TDocument : IDocument where TKey : IEquatable { return await MongoDbUpdater.UpdateOneAsync(session, filter, field, value, partitionKey, cancellationToken); } /// public virtual bool UpdateOne( IClientSessionHandle session, FilterDefinition filter, Expression> field, TField value) where TDocument : IDocument where TKey : IEquatable { return UpdateOne(session, filter, field, value, null, CancellationToken.None); } /// public virtual bool UpdateOne( IClientSessionHandle session, FilterDefinition filter, Expression> field, TField value, CancellationToken cancellationToken) where TDocument : IDocument where TKey : IEquatable { return UpdateOne(session, filter, field, value, null, cancellationToken); } /// public virtual bool UpdateOne( IClientSessionHandle session, FilterDefinition filter, Expression> field, TField value, string partitionKey) where TDocument : IDocument where TKey : IEquatable { return UpdateOne(session, filter, field, value, partitionKey, CancellationToken.None); } /// public virtual bool UpdateOne( IClientSessionHandle session, FilterDefinition filter, Expression> field, TField value, string partitionKey, CancellationToken cancellationToken) where TDocument : IDocument where TKey : IEquatable { return MongoDbUpdater.UpdateOne(session, filter, field, value, partitionKey, cancellationToken); } /// public virtual bool UpdateOne( IClientSessionHandle session, Expression> filter, Expression> field, TField value) where TDocument : IDocument where TKey : IEquatable { return UpdateOne(session, Builders.Filter.Where(filter), field, value, null, CancellationToken.None); } /// public virtual bool UpdateOne( IClientSessionHandle session, Expression> filter, Expression> field, TField value, CancellationToken cancellationToken) where TDocument : IDocument where TKey : IEquatable { return UpdateOne(session, Builders.Filter.Where(filter), field, value, null, cancellationToken); } /// public virtual bool UpdateOne( IClientSessionHandle session, Expression> filter, Expression> field, TField value, string partitionKey) where TDocument : IDocument where TKey : IEquatable { return UpdateOne(session, Builders.Filter.Where(filter), field, value, partitionKey, CancellationToken.None); } /// public virtual bool UpdateOne( IClientSessionHandle session, Expression> filter, Expression> field, TField value, string partitionKey, CancellationToken cancellationToken) where TDocument : IDocument where TKey : IEquatable { return UpdateOne(session, Builders.Filter.Where(filter), field, value, partitionKey, cancellationToken); } } }