Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 12 additions & 12 deletions ManagedCode.Repository.AzureTable/BaseAzureTableRepository.cs
Original file line number Diff line number Diff line change
Expand Up @@ -68,16 +68,16 @@ protected override async Task<int> InsertAsyncInternal(IEnumerable<TItem> items,

#region InsertOrUpdate

protected override async Task<bool> InsertOrUpdateAsyncInternal(TItem item, CancellationToken token = default)
protected override async Task<TItem> InsertOrUpdateAsyncInternal(TItem item, CancellationToken token = default)
{
try
{
var result = await _tableAdapter.ExecuteAsync(TableOperation.InsertOrReplace(item), token);
return result != null;
var result = await _tableAdapter.ExecuteAsync<TItem>(TableOperation.InsertOrReplace(item), token);
return result;
}
catch (Exception e)
{
return false;
return default;
}
}

Expand All @@ -97,7 +97,7 @@ protected override async Task<int> InsertOrUpdateAsyncInternal(IEnumerable<TItem

#region Update

protected override async Task<bool> UpdateAsyncInternal(TItem item, CancellationToken token = default)
protected override async Task<TItem> UpdateAsyncInternal(TItem item, CancellationToken token = default)
{
try
{
Expand All @@ -106,12 +106,12 @@ protected override async Task<bool> UpdateAsyncInternal(TItem item, Cancellation
item.ETag = "*";
}

var result = await _tableAdapter.ExecuteAsync(TableOperation.Replace(item), token);
return result != null;
var result = await _tableAdapter.ExecuteAsync<TItem>(TableOperation.Replace(item), token);
return result;
}
catch (Exception e)
{
return false;
return default;
}
}

Expand Down Expand Up @@ -294,9 +294,9 @@ protected override IAsyncEnumerable<TItem> FindAsyncInternal(Expression<Func<TIt

#region Count

protected override async Task<uint> CountAsyncInternal(CancellationToken token = default)
protected override async Task<int> CountAsyncInternal(CancellationToken token = default)
{
uint count = 0;
int count = 0;

Expression<Func<TItem, bool>> predicate = item => true;

Expand All @@ -310,9 +310,9 @@ protected override async Task<uint> CountAsyncInternal(CancellationToken token =
return count;
}

protected override async Task<uint> CountAsyncInternal(Expression<Func<TItem, bool>> predicate, CancellationToken token = default)
protected override async Task<int> CountAsyncInternal(Expression<Func<TItem, bool>> predicate, CancellationToken token = default)
{
uint count = 0;
int count = 0;

await foreach (var item in _tableAdapter
.Query<DynamicTableEntity>(predicate, selectExpression: item => new DynamicTableEntity(item.PartitionKey, item.RowKey),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
<Authors>ManagedCode</Authors>
<PackageLicenseUrl>https://github.com/managed-code-hub/Repository/blob/main/LICENSE</PackageLicenseUrl>
<RepositoryUrl>https://github.com/managed-code-hub/Repository</RepositoryUrl>
<PackageVersion>1.0.4</PackageVersion>
<PackageVersion>1.0.5</PackageVersion>
<Description>Repository for AzureTable</Description>
</PropertyGroup>

Expand Down
16 changes: 8 additions & 8 deletions ManagedCode.Repository.Core/BaseRepository.cs
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ public Task<int> InsertAsync(IEnumerable<TItem> items, CancellationToken token =

#region Update

public Task<bool> UpdateAsync(TItem item, CancellationToken token = default)
public Task<TItem> UpdateAsync(TItem item, CancellationToken token = default)
{
Contract.Requires(IsInitialized);
Contract.Requires(item != null);
Expand All @@ -61,7 +61,7 @@ public Task<int> UpdateAsync(IEnumerable<TItem> items, CancellationToken token =
return UpdateAsyncInternal(items, token);
}

protected abstract Task<bool> UpdateAsyncInternal(TItem items, CancellationToken token = default);
protected abstract Task<TItem> UpdateAsyncInternal(TItem items, CancellationToken token = default);

protected abstract Task<int> UpdateAsyncInternal(IEnumerable<TItem> items, CancellationToken token = default);

Expand Down Expand Up @@ -126,7 +126,7 @@ public Task<bool> DeleteAllAsync(CancellationToken token = default)

#region InsertOrUpdate

public Task<bool> InsertOrUpdateAsync(TItem item, CancellationToken token = default)
public Task<TItem> InsertOrUpdateAsync(TItem item, CancellationToken token = default)
{
Contract.Requires(IsInitialized);
Contract.Requires(item != null);
Expand All @@ -140,7 +140,7 @@ public Task<int> InsertOrUpdateAsync(IEnumerable<TItem> items, CancellationToken
return InsertOrUpdateAsyncInternal(items, token);
}

protected abstract Task<bool> InsertOrUpdateAsyncInternal(TItem item, CancellationToken token = default);
protected abstract Task<TItem> InsertOrUpdateAsyncInternal(TItem item, CancellationToken token = default);

protected abstract Task<int> InsertOrUpdateAsyncInternal(IEnumerable<TItem> items, CancellationToken token = default);

Expand Down Expand Up @@ -297,22 +297,22 @@ protected abstract IAsyncEnumerable<TItem> FindAsyncInternal(Expression<Func<TIt

#region Count

public Task<uint> CountAsync(CancellationToken token = default)
public Task<int> CountAsync(CancellationToken token = default)
{
Contract.Requires(IsInitialized);
return CountAsyncInternal(token);
}

public Task<uint> CountAsync(Expression<Func<TItem, bool>> predicate, CancellationToken token = default)
public Task<int> CountAsync(Expression<Func<TItem, bool>> predicate, CancellationToken token = default)
{
Contract.Requires(IsInitialized);
Contract.Requires(predicate != null);
return CountAsyncInternal(predicate, token);
}

protected abstract Task<uint> CountAsyncInternal(CancellationToken token = default);
protected abstract Task<int> CountAsyncInternal(CancellationToken token = default);

protected abstract Task<uint> CountAsyncInternal(Expression<Func<TItem, bool>> predicate, CancellationToken token = default);
protected abstract Task<int> CountAsyncInternal(Expression<Func<TItem, bool>> predicate, CancellationToken token = default);

#endregion
}
Expand Down
8 changes: 4 additions & 4 deletions ManagedCode.Repository.Core/IRepository.cs
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,10 @@ public interface IRepository<in TId, TItem> where TItem : IItem<TId>
Task<TItem> InsertAsync(TItem item, CancellationToken token = default);
Task<int> InsertAsync(IEnumerable<TItem> items, CancellationToken token = default);

Task<bool> UpdateAsync(TItem item, CancellationToken token = default);
Task<TItem> UpdateAsync(TItem item, CancellationToken token = default);
Task<int> UpdateAsync(IEnumerable<TItem> items, CancellationToken token = default);

Task<bool> InsertOrUpdateAsync(TItem item, CancellationToken token = default);
Task<TItem> InsertOrUpdateAsync(TItem item, CancellationToken token = default);
Task<int> InsertOrUpdateAsync(IEnumerable<TItem> items, CancellationToken token = default);

Task<bool> DeleteAsync(TId id, CancellationToken token = default);
Expand Down Expand Up @@ -86,7 +86,7 @@ IAsyncEnumerable<TItem> FindAsync(Expression<Func<TItem, bool>> predicate,
int skip = 0,
CancellationToken token = default);

Task<uint> CountAsync(CancellationToken token = default);
Task<uint> CountAsync(Expression<Func<TItem, bool>> predicate, CancellationToken token = default);
Task<int> CountAsync(CancellationToken token = default);
Task<int> CountAsync(Expression<Func<TItem, bool>> predicate, CancellationToken token = default);
}
}
18 changes: 9 additions & 9 deletions ManagedCode.Repository.Core/InMemoryRepository.cs
Original file line number Diff line number Diff line change
Expand Up @@ -57,12 +57,12 @@ protected override Task<int> InsertAsyncInternal(IEnumerable<TItem> items, Cance

#region InsertOrUpdate

protected override Task<bool> InsertOrUpdateAsyncInternal(TItem item, CancellationToken token = default)
protected override Task<TItem> InsertOrUpdateAsyncInternal(TItem item, CancellationToken token = default)
{
lock (_storage)
{
_storage[item.Id] = item;
return Task.FromResult(true);
return Task.FromResult(item);
}
}

Expand All @@ -86,17 +86,17 @@ protected override Task<int> InsertOrUpdateAsyncInternal(IEnumerable<TItem> item

#region Update

protected override Task<bool> UpdateAsyncInternal(TItem item, CancellationToken token = default)
protected override Task<TItem> UpdateAsyncInternal(TItem item, CancellationToken token = default)
{
lock (_storage)
{
if (_storage.TryGetValue(item.Id, out var _))
{
_storage[item.Id] = item;
return Task.FromResult(true);
return Task.FromResult(item);
}

return Task.FromResult(false);
return Task.FromResult<TItem>(default);
}
}

Expand Down Expand Up @@ -392,20 +392,20 @@ protected override async IAsyncEnumerable<TItem> FindAsyncInternal(Expression<Fu

#region Count

protected override Task<uint> CountAsyncInternal(CancellationToken token = default)
protected override Task<int> CountAsyncInternal(CancellationToken token = default)
{
lock (_storage)
{
return Task.FromResult(Convert.ToUInt32(_storage.Count));
return Task.FromResult(_storage.Count);
}
}

protected override Task<uint> CountAsyncInternal(Expression<Func<TItem, bool>> predicate, CancellationToken token = default)
protected override Task<int> CountAsyncInternal(Expression<Func<TItem, bool>> predicate, CancellationToken token = default)
{
lock (_storage)
{
var count = _storage.Values.Count(predicate.Compile());
return Task.FromResult(Convert.ToUInt32(count));
return Task.FromResult(count);
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
<PackageProjectUrl>https://github.com/managed-code-hub/Repository</PackageProjectUrl>
<PackageLicenseUrl>https://github.com/managed-code-hub/Repository/blob/main/LICENSE</PackageLicenseUrl>
<RepositoryUrl>https://github.com/managed-code-hub/Repository</RepositoryUrl>
<PackageVersion>1.0.4</PackageVersion>
<PackageVersion>1.0.5</PackageVersion>
<Description>Base implementation for Repository</Description>
</PropertyGroup>

Expand Down
20 changes: 10 additions & 10 deletions ManagedCode.Repository.CosmosDB/CosmosDbRepository.cs
Original file line number Diff line number Diff line change
Expand Up @@ -105,17 +105,17 @@ protected override async Task<int> InsertAsyncInternal(IEnumerable<TItem> items,

#region InsertOrUpdate

protected override async Task<bool> InsertOrUpdateAsyncInternal(TItem item, CancellationToken token = default)
protected override async Task<TItem> InsertOrUpdateAsyncInternal(TItem item, CancellationToken token = default)
{
try
{
var container = await _cosmosDbAdapter.GetContainer();
var result = await container.UpsertItemAsync(item, item.PartitionKey, cancellationToken: token);
return result != null;
return result.Resource;
}
catch (Exception e)
{
return false;
return default;
}
}

Expand Down Expand Up @@ -165,17 +165,17 @@ protected override async Task<int> InsertOrUpdateAsyncInternal(IEnumerable<TItem

#region Update

protected override async Task<bool> UpdateAsyncInternal(TItem item, CancellationToken token = default)
protected override async Task<TItem> UpdateAsyncInternal(TItem item, CancellationToken token = default)
{
try
{
var container = await _cosmosDbAdapter.GetContainer();
var result = await container.ReplaceItemAsync(item, item.Id, cancellationToken: token);
return result != null;
return result.Resource;
}
catch (Exception e)
{
return false;
return default;
}
}

Expand Down Expand Up @@ -662,16 +662,16 @@ protected override async IAsyncEnumerable<TItem> FindAsyncInternal(Expression<Fu

#region Count

protected override async Task<uint> CountAsyncInternal(CancellationToken token = default)
protected override async Task<int> CountAsyncInternal(CancellationToken token = default)
{
var container = await _cosmosDbAdapter.GetContainer();
return Convert.ToUInt32(await container.GetItemLinqQueryable<TItem>().Where(SplitByType()).CountAsync(token));
return await container.GetItemLinqQueryable<TItem>().Where(SplitByType()).CountAsync(token);
}

protected override async Task<uint> CountAsyncInternal(Expression<Func<TItem, bool>> predicate, CancellationToken token = default)
protected override async Task<int> CountAsyncInternal(Expression<Func<TItem, bool>> predicate, CancellationToken token = default)
{
var container = await _cosmosDbAdapter.GetContainer();
return Convert.ToUInt32(await container.GetItemLinqQueryable<TItem>().Where(SplitByType()).Where(predicate).CountAsync(token));
return await container.GetItemLinqQueryable<TItem>().Where(SplitByType()).Where(predicate).CountAsync(token);
}

#endregion
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
<Authors>ManagedCode</Authors>
<PackageLicenseUrl>https://github.com/managed-code-hub/Repository/blob/main/LICENSE</PackageLicenseUrl>
<RepositoryUrl>https://github.com/managed-code-hub/Repository</RepositoryUrl>
<PackageVersion>1.0.4</PackageVersion>
<PackageVersion>1.0.5</PackageVersion>
<Description>Repository for CosmosDB</Description>
</PropertyGroup>

Expand Down
26 changes: 18 additions & 8 deletions ManagedCode.Repository.LiteDB/LiteDbRepository.cs
Original file line number Diff line number Diff line change
Expand Up @@ -73,10 +73,15 @@ protected override async Task<int> InsertAsyncInternal(IEnumerable<TItem> items,

#region InsertOrUpdate

protected override async Task<bool> InsertOrUpdateAsyncInternal(TItem item, CancellationToken token = default)
protected override async Task<TItem> InsertOrUpdateAsyncInternal(TItem item, CancellationToken token = default)
{
await Task.Yield();
return GetDatabase().Upsert(item);
if (GetDatabase().Upsert(item))
{
return GetDatabase().FindById(new BsonValue(item.Id));
}

return default;
}

protected override async Task<int> InsertOrUpdateAsyncInternal(IEnumerable<TItem> items, CancellationToken token = default)
Expand All @@ -89,10 +94,15 @@ protected override async Task<int> InsertOrUpdateAsyncInternal(IEnumerable<TItem

#region Update

protected override async Task<bool> UpdateAsyncInternal(TItem item, CancellationToken token = default)
protected override async Task<TItem> UpdateAsyncInternal(TItem item, CancellationToken token = default)
{
await Task.Yield();
return GetDatabase().Update(item);
if (GetDatabase().Update(item))
{
return GetDatabase().FindById(new BsonValue(item.Id));
}

return default;
}

protected override async Task<int> UpdateAsyncInternal(IEnumerable<TItem> items, CancellationToken token = default)
Expand Down Expand Up @@ -349,16 +359,16 @@ protected override async IAsyncEnumerable<TItem> FindAsyncInternal(Expression<Fu

#region Count

protected override async Task<uint> CountAsyncInternal(CancellationToken token = default)
protected override async Task<int> CountAsyncInternal(CancellationToken token = default)
{
await Task.Yield();
return (uint) GetDatabase().Count();
return GetDatabase().Count();
}

protected override async Task<uint> CountAsyncInternal(Expression<Func<TItem, bool>> predicate, CancellationToken token = default)
protected override async Task<int> CountAsyncInternal(Expression<Func<TItem, bool>> predicate, CancellationToken token = default)
{
await Task.Yield();
return (uint) GetDatabase().Count(predicate);
return GetDatabase().Count(predicate);
}

#endregion
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
<Authors>ManagedCode</Authors>
<PackageLicenseUrl>https://github.com/managed-code-hub/Repository/blob/main/LICENSE</PackageLicenseUrl>
<RepositoryUrl>https://github.com/managed-code-hub/Repository</RepositoryUrl>
<PackageVersion>1.0.4</PackageVersion>
<PackageVersion>1.0.5</PackageVersion>
<Description>Repository for LiteDB</Description>
</PropertyGroup>

Expand Down
Loading