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( return SyncAsync(
async (wasFree, token) => async (wasFree, token) =>
{ {
return wasFree ? await InternalRefreshAsync(force, token).ConfigureAwait(false) : 0; return wasFree ? await InternalRefreshAsync(force, token) : 0;
}, token); }, token);
} }
@ -297,7 +297,7 @@ namespace AsbCloudInfrastructure.Services.Cache
dbSet.Add(entity); dbSet.Add(entity);
var affected = await context.SaveChangesAsync(token).ConfigureAwait(false); var affected = await context.SaveChangesAsync(token).ConfigureAwait(false);
if (affected > 0) if (affected > 0)
await InternalRefreshAsync(true, token).ConfigureAwait(false); await InternalRefreshAsync(true, token);
return affected; return affected;
}, token); }, token);
@ -341,7 +341,7 @@ namespace AsbCloudInfrastructure.Services.Cache
var affected = await context.SaveChangesAsync(token).ConfigureAwait(false); var affected = await context.SaveChangesAsync(token).ConfigureAwait(false);
if (affected > 0) if (affected > 0)
await InternalRefreshAsync(true, token).ConfigureAwait(false); await InternalRefreshAsync(true, token);
return affected; return affected;
}, token); }, token);
} }
@ -362,7 +362,7 @@ namespace AsbCloudInfrastructure.Services.Cache
dbSet.RemoveRange(dbSet.Where(predicate)); dbSet.RemoveRange(dbSet.Where(predicate));
var affected = await context.SaveChangesAsync(token).ConfigureAwait(false); var affected = await context.SaveChangesAsync(token).ConfigureAwait(false);
if (affected > 0) if (affected > 0)
await InternalRefreshAsync(true, token).ConfigureAwait(false); await InternalRefreshAsync(true, token);
return affected; return affected;
}, token); }, token);
@ -385,32 +385,61 @@ namespace AsbCloudInfrastructure.Services.Cache
var entry = dbSet.Add(entity); var entry = dbSet.Add(entity);
var affected = await context.SaveChangesAsync(token).ConfigureAwait(false); var affected = await context.SaveChangesAsync(token).ConfigureAwait(false);
if (affected > 0) if (affected > 0)
await InternalRefreshAsync(true, token).ConfigureAwait(false); await InternalRefreshAsync(true, token);
return entry.Entity; return entry.Entity;
}, token); }, 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(_ => 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(); var affected = context.SaveChanges();
if (affected > 0) if (affected > 0)
InternalRefresh(true); 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) => 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); var affected = await context.SaveChangesAsync(token).ConfigureAwait(false);
if (affected > 0) if (affected > 0)
await InternalRefreshAsync(true, token).ConfigureAwait(false); await InternalRefreshAsync(true, token);
return affected; else
return null;
return entries.Select(e => e.Entity);
}, token); }, token);
} }