Refactor cacheTable.

Remove ConfigureAwait(false) for private methotds.
Insert?() returns updated entity(ies).
This commit is contained in:
Фролов 2021-12-11 16:33:37 +05:00
parent 6dc3137627
commit 1ec22744c3

View File

@ -169,7 +169,7 @@ namespace AsbCloudInfrastructure.Services.Cache
return SyncAsync(
async (wasFree, token) =>
{
return wasFree ? await InternalRefreshAsync(force, token).ConfigureAwait(false) : 0;
return wasFree ? await InternalRefreshAsync(force, token) : 0;
}, token);
}
@ -297,7 +297,7 @@ namespace AsbCloudInfrastructure.Services.Cache
dbSet.Add(entity);
var affected = await context.SaveChangesAsync(token).ConfigureAwait(false);
if (affected > 0)
await InternalRefreshAsync(true, token).ConfigureAwait(false);
await InternalRefreshAsync(true, token);
return affected;
}, token);
@ -341,7 +341,7 @@ namespace AsbCloudInfrastructure.Services.Cache
var affected = await context.SaveChangesAsync(token).ConfigureAwait(false);
if (affected > 0)
await InternalRefreshAsync(true, token).ConfigureAwait(false);
await InternalRefreshAsync(true, token);
return affected;
}, token);
}
@ -362,7 +362,7 @@ namespace AsbCloudInfrastructure.Services.Cache
dbSet.RemoveRange(dbSet.Where(predicate));
var affected = await context.SaveChangesAsync(token).ConfigureAwait(false);
if (affected > 0)
await InternalRefreshAsync(true, token).ConfigureAwait(false);
await InternalRefreshAsync(true, token);
return affected;
}, token);
@ -385,32 +385,61 @@ namespace AsbCloudInfrastructure.Services.Cache
var entry = dbSet.Add(entity);
var affected = await context.SaveChangesAsync(token).ConfigureAwait(false);
if (affected > 0)
await InternalRefreshAsync(true, token).ConfigureAwait(false);
await InternalRefreshAsync(true, token);
return entry.Entity;
}, token);
}
public int Insert(IEnumerable<TEntity> newEntities)
public IEnumerable<TEntity> Insert(IEnumerable<TEntity> newEntities)
{
if (newEntities is null)
return null;
var count = newEntities.Count();
if (count == 0)
return null;
return Sync(_ =>
{
dbSet.AddRange(newEntities);
var entries = new List<Microsoft.EntityFrameworkCore.ChangeTracking.EntityEntry<TEntity>>(count);
foreach (var newEntity in newEntities)
{
var entry = dbSet.Add(newEntity);
entries.Add(entry);
}
var affected = context.SaveChanges();
if (affected > 0)
InternalRefresh(true);
return affected;
else
return null;
return entries.Select(e => e.Entity);
});
}
public Task<int> InsertAsync(IEnumerable<TEntity> newEntities, CancellationToken token = default)
public Task<IEnumerable<TEntity>> InsertAsync(IEnumerable<TEntity> newEntities, CancellationToken token = default)
{
if(newEntities is null)
return null;
var count = newEntities.Count();
if (count == 0)
return null;
return SyncAsync(async (wasFree, token) =>
{
dbSet.AddRange(newEntities);
var entries = new List<Microsoft.EntityFrameworkCore.ChangeTracking.EntityEntry<TEntity>>(count);
foreach (var newEntity in newEntities)
{
var entry = dbSet.Add(newEntity);
entries.Add(entry);
}
var affected = await context.SaveChangesAsync(token).ConfigureAwait(false);
if (affected > 0)
await InternalRefreshAsync(true, token).ConfigureAwait(false);
return affected;
await InternalRefreshAsync(true, token);
else
return null;
return entries.Select(e => e.Entity);
}, token);
}