Skip to content

Commit

Permalink
Make UpdateOptions parameters non-optional to prevent ambiguous calls
Browse files Browse the repository at this point in the history
  • Loading branch information
johnknoop committed Dec 31, 2019
1 parent 030be3c commit 7dd0c3c
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 16 deletions.
16 changes: 8 additions & 8 deletions JohnKnoop.MongoRepository/source/IRepository.cs
Original file line number Diff line number Diff line change
Expand Up @@ -86,22 +86,22 @@ IFindFluent<TDerivedEntity, TDerivedEntity> Find<TDerivedEntity>(FilterDefinitio
Task<UpdateResult> UpdateOneAsync(string filter, string update, bool upsert = false);

Task<UpdateResult> UpdateOneAsync(string id, Func<UpdateDefinitionBuilder<TEntity>, UpdateDefinition<TEntity>> update, bool upsert = false);
Task<UpdateResult> UpdateOneAsync(string id, Func<UpdateDefinitionBuilder<TEntity>, UpdateDefinition<TEntity>> update, UpdateOptions options = null);
Task<UpdateResult> UpdateOneAsync(string id, Func<UpdateDefinitionBuilder<TEntity>, UpdateDefinition<TEntity>> update, UpdateOptions options);


Task<UpdateResult> UpdateOneAsync(Expression<Func<TEntity, bool>> filter, Func<UpdateDefinitionBuilder<TEntity>, UpdateDefinition<TEntity>> update, bool upsert = false);
Task<UpdateResult> UpdateOneAsync(FilterDefinition<TEntity> filter, Func<UpdateDefinitionBuilder<TEntity>, UpdateDefinition<TEntity>> update, bool upsert = false);

Task<UpdateResult> UpdateOneAsync(Expression<Func<TEntity, bool>> filter, Func<UpdateDefinitionBuilder<TEntity>, UpdateDefinition<TEntity>> update, UpdateOptions options = null);
Task<UpdateResult> UpdateOneAsync(FilterDefinition<TEntity> filter, Func<UpdateDefinitionBuilder<TEntity>, UpdateDefinition<TEntity>> update, UpdateOptions options = null);
Task<UpdateResult> UpdateOneAsync(Expression<Func<TEntity, bool>> filter, Func<UpdateDefinitionBuilder<TEntity>, UpdateDefinition<TEntity>> update, UpdateOptions options);
Task<UpdateResult> UpdateOneAsync(FilterDefinition<TEntity> filter, Func<UpdateDefinitionBuilder<TEntity>, UpdateDefinition<TEntity>> update, UpdateOptions options);

Task<UpdateResult> UpdateOneAsync<TDerived>(string id, Func<UpdateDefinitionBuilder<TDerived>, UpdateDefinition<TDerived>> update, bool upsert = false) where TDerived : TEntity;
Task<UpdateResult> UpdateOneAsync<TDerived>(string id, Func<UpdateDefinitionBuilder<TDerived>, UpdateDefinition<TDerived>> update, UpdateOptions options = null) where TDerived : TEntity;
Task<UpdateResult> UpdateOneAsync<TDerived>(string id, Func<UpdateDefinitionBuilder<TDerived>, UpdateDefinition<TDerived>> update, UpdateOptions options) where TDerived : TEntity;

Task<UpdateResult> UpdateOneAsync<TDerived>(Expression<Func<TDerived, bool>> filter, Func<UpdateDefinitionBuilder<TDerived>, UpdateDefinition<TDerived>> update, bool upsert = false) where TDerived : TEntity;
Task<UpdateResult> UpdateOneAsync<TDerived>(FilterDefinition<TDerived> filter, Func<UpdateDefinitionBuilder<TDerived>, UpdateDefinition<TDerived>> update, bool upsert = false) where TDerived : TEntity;
Task<UpdateResult> UpdateOneAsync<TDerived>(Expression<Func<TDerived, bool>> filter, Func<UpdateDefinitionBuilder<TDerived>, UpdateDefinition<TDerived>> update, UpdateOptions options = null) where TDerived : TEntity;
Task<UpdateResult> UpdateOneAsync<TDerived>(FilterDefinition<TDerived> filter, Func<UpdateDefinitionBuilder<TDerived>, UpdateDefinition<TDerived>> update, UpdateOptions options = null) where TDerived : TEntity;
Task<UpdateResult> UpdateOneAsync<TDerived>(Expression<Func<TDerived, bool>> filter, Func<UpdateDefinitionBuilder<TDerived>, UpdateDefinition<TDerived>> update, UpdateOptions options) where TDerived : TEntity;
Task<UpdateResult> UpdateOneAsync<TDerived>(FilterDefinition<TDerived> filter, Func<UpdateDefinitionBuilder<TDerived>, UpdateDefinition<TDerived>> update, UpdateOptions options) where TDerived : TEntity;


Task<TReturnProjection> FindOneAndUpdateAsync<TReturnProjection>(Expression<Func<TEntity, bool>> filter, Func<UpdateDefinitionBuilder<TEntity>, UpdateDefinition<TEntity>> update, Expression<Func<TEntity, TReturnProjection>> returnProjection, ReturnedDocumentState returnedDocumentState = ReturnedDocumentState.AfterUpdate, bool upsert = false);
Expand All @@ -122,12 +122,12 @@ IFindFluent<TDerivedEntity, TDerivedEntity> Find<TDerivedEntity>(FilterDefinitio
/// </summary>
Task UpdateManyAsync(Expression<Func<TEntity, bool>> filter,
Func<UpdateDefinitionBuilder<TEntity>, UpdateDefinition<TEntity>> update,
UpdateOptions options = null);
UpdateOptions options);

[Obsolete("This overload of UpdateOneAsync will be removed in a future version")]
Task UpdateManyAsync(Expression<Func<TEntity, bool>> filter,
string update,
UpdateOptions options = null);
UpdateOptions options);

Task<long> IncrementCounterAsync(string name = null, int incrementBy = 1);
Task<long?> GetCounterValueAsync(string name = null);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<Version>3.0.0-rc.3</Version>
<Version>3.0.0-rc.4</Version>
<Description>An easily configurable repository for MongoDB with support for multi-tenancy</Description>
<PackageProjectUrl>https://github.com/johnknoop/MongoRepository</PackageProjectUrl>
<PackageTags>repository mongodb multitenant</PackageTags>
Expand Down
14 changes: 7 additions & 7 deletions JohnKnoop.MongoRepository/source/MongoRepository.cs
Original file line number Diff line number Diff line change
Expand Up @@ -202,7 +202,7 @@ public Task<UpdateResult> UpdateOneAsync<TDerived>(string id,
where TDerived : TEntity
=> UpdateOneAsync<TDerived>(id, update, new UpdateOptions { IsUpsert = upsert });

public async Task<UpdateResult> UpdateOneAsync<TDerived>(string id, Func<UpdateDefinitionBuilder<TDerived>, UpdateDefinition<TDerived>> update, UpdateOptions options = null) where TDerived : TEntity
public async Task<UpdateResult> UpdateOneAsync<TDerived>(string id, Func<UpdateDefinitionBuilder<TDerived>, UpdateDefinition<TDerived>> update, UpdateOptions options) where TDerived : TEntity
{
if (id == null) throw new ArgumentNullException(nameof(id));

Expand All @@ -224,11 +224,11 @@ public Task<UpdateResult> UpdateOneAsync<TDerived>(FilterDefinition<TDerived> fi
=> UpdateOneAsync<TDerived>(filter, update, new UpdateOptions { IsUpsert = upsert });

public Task<UpdateResult> UpdateOneAsync<TDerived>(Expression<Func<TDerived, bool>> filter,
Func<UpdateDefinitionBuilder<TDerived>, UpdateDefinition<TDerived>> update, UpdateOptions options = null)
Func<UpdateDefinitionBuilder<TDerived>, UpdateDefinition<TDerived>> update, UpdateOptions options)
where TDerived : TEntity =>
UpdateOneAsync((FilterDefinition<TDerived>) filter, update, options);

public async Task<UpdateResult> UpdateOneAsync<TDerived>(FilterDefinition<TDerived> filter, Func<UpdateDefinitionBuilder<TDerived>, UpdateDefinition<TDerived>> update, UpdateOptions options = null) where TDerived : TEntity
public async Task<UpdateResult> UpdateOneAsync<TDerived>(FilterDefinition<TDerived> filter, Func<UpdateDefinitionBuilder<TDerived>, UpdateDefinition<TDerived>> update, UpdateOptions options) where TDerived : TEntity
{
await MongoConfiguration.EnsureIndexesAndCap(MongoCollection);

Expand Down Expand Up @@ -259,10 +259,10 @@ public Task<UpdateResult> UpdateOneAsync(FilterDefinition<TEntity> filter,
UpdateOneAsync(filter, update, new UpdateOptions { IsUpsert = upsert });

public Task<UpdateResult> UpdateOneAsync(Expression<Func<TEntity, bool>> filter,
Func<UpdateDefinitionBuilder<TEntity>, UpdateDefinition<TEntity>> update, UpdateOptions options = null) =>
Func<UpdateDefinitionBuilder<TEntity>, UpdateDefinition<TEntity>> update, UpdateOptions options) =>
UpdateOneAsync((FilterDefinition<TEntity>)filter, update, options);

public async Task<UpdateResult> UpdateOneAsync(FilterDefinition<TEntity> filter, Func<UpdateDefinitionBuilder<TEntity>, UpdateDefinition<TEntity>> update, UpdateOptions options = null)
public async Task<UpdateResult> UpdateOneAsync(FilterDefinition<TEntity> filter, Func<UpdateDefinitionBuilder<TEntity>, UpdateDefinition<TEntity>> update, UpdateOptions options)
{
await MongoConfiguration.EnsureIndexesAndCap(MongoCollection);

Expand Down Expand Up @@ -329,7 +329,7 @@ public async Task<BulkWriteResult<TDerived>> UpdateOneBulkAsync<TDerived>(IEnume
/// </summary>
public async Task UpdateManyAsync(Expression<Func<TEntity, bool>> filter,
Func<UpdateDefinitionBuilder<TEntity>, UpdateDefinition<TEntity>> update,
UpdateOptions options = null)
UpdateOptions options)
{
await MongoConfiguration.EnsureIndexesAndCap(MongoCollection);

Expand All @@ -341,7 +341,7 @@ public async Task UpdateManyAsync(Expression<Func<TEntity, bool>> filter,
/// </summary>
public async Task UpdateManyAsync(Expression<Func<TEntity, bool>> filter,
string update,
UpdateOptions options = null)
UpdateOptions options)
{
await MongoConfiguration.EnsureIndexesAndCap(MongoCollection);

Expand Down

0 comments on commit 7dd0c3c

Please sign in to comment.