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);
}
}
}