InstanceRegistrationContext - async

This commit is contained in:
Anton Suhorukov 2023-03-15 18:59:19 +03:00
parent e5749eb986
commit 71073f4e88
3 changed files with 18 additions and 18 deletions

View File

@ -29,7 +29,7 @@ namespace ASC.Core.Common.Hosting.Interfaces;
[Scope]
public interface IRegisterInstanceDao<T> where T : IHostedService
{
Task AddOrUpdate(InstanceRegistration obj);
Task<IEnumerable<InstanceRegistration>> GetAll();
Task Delete(string instanceId);
Task AddOrUpdateAsync(InstanceRegistration obj);
Task<IEnumerable<InstanceRegistration>> GetAllAsync();
Task DeleteAsync(string instanceId);
}

View File

@ -40,10 +40,10 @@ public class RegisterInstanceDao<T> : IRegisterInstanceDao<T> where T : IHostedS
_dbContextFactory = dbContextFactory;
}
public async Task AddOrUpdate(InstanceRegistration obj)
public async Task AddOrUpdateAsync(InstanceRegistration obj)
{
using var _instanceRegistrationContext = _dbContextFactory.CreateDbContext();
var inst = _instanceRegistrationContext.InstanceRegistrations.Find(obj.InstanceRegistrationId);
using var _instanceRegistrationContext = await _dbContextFactory.CreateDbContextAsync();
var inst = await _instanceRegistrationContext.InstanceRegistrations.FindAsync(obj.InstanceRegistrationId);
if (inst == null)
{
@ -58,7 +58,7 @@ public class RegisterInstanceDao<T> : IRegisterInstanceDao<T> where T : IHostedS
do
{
saveFailed = false;
saveFailed = false;
try
{
@ -81,18 +81,18 @@ public class RegisterInstanceDao<T> : IRegisterInstanceDao<T> where T : IHostedS
while (saveFailed);
}
public async Task<IEnumerable<InstanceRegistration>> GetAll()
public async Task<IEnumerable<InstanceRegistration>> GetAllAsync()
{
using var _instanceRegistrationContext = _dbContextFactory.CreateDbContext();
using var _instanceRegistrationContext = await _dbContextFactory.CreateDbContextAsync();
return await _instanceRegistrationContext.InstanceRegistrations
.Where(x => x.WorkerTypeName == typeof(T).GetFormattedName())
.ToListAsync();
}
public async Task Delete(string instanceId)
public async Task DeleteAsync(string instanceId)
{
using var _instanceRegistrationContext = _dbContextFactory.CreateDbContext();
var item = _instanceRegistrationContext.InstanceRegistrations.Find(instanceId);
using var _instanceRegistrationContext = await _dbContextFactory.CreateDbContextAsync();
var item = await _instanceRegistrationContext.InstanceRegistrations.FindAsync(instanceId);
if (item == null)
{

View File

@ -54,7 +54,7 @@ public class RegisterInstanceManager<T> : IRegisterInstanceManager<T> where T :
{
if (_isSingletoneMode) return;
var instances = await _registerInstanceRepository.GetAll();
var instances = await _registerInstanceRepository.GetAllAsync();
var registeredInstance = instances.FirstOrDefault(x => x.InstanceRegistrationId == instanceId);
var instance = registeredInstance ?? new InstanceRegistration
@ -75,19 +75,19 @@ public class RegisterInstanceManager<T> : IRegisterInstanceManager<T> where T :
}
}
await _registerInstanceRepository.AddOrUpdate(instance);
await _registerInstanceRepository.AddOrUpdateAsync(instance);
}
public async Task UnRegister(string instanceId)
{
await _registerInstanceRepository.Delete(instanceId);
await _registerInstanceRepository.DeleteAsync(instanceId);
}
public async Task<bool> IsActive(string instanceId)
{
if (_isSingletoneMode) return await Task.FromResult(true);
var instances = await _registerInstanceRepository.GetAll();
var instances = await _registerInstanceRepository.GetAllAsync();
var instance = instances.FirstOrDefault(x => x.InstanceRegistrationId == instanceId);
return instance is not null && instance.IsActive;
@ -97,12 +97,12 @@ public class RegisterInstanceManager<T> : IRegisterInstanceManager<T> where T :
{
if (_isSingletoneMode) return await Task.FromResult(new List<string>());
var instances = await _registerInstanceRepository.GetAll();
var instances = await _registerInstanceRepository.GetAllAsync();
var oldRegistrations = instances.Where(IsOrphanInstance).ToList();
foreach (var instanceRegistration in oldRegistrations)
{
await _registerInstanceRepository.Delete(instanceRegistration.InstanceRegistrationId);
await _registerInstanceRepository.DeleteAsync(instanceRegistration.InstanceRegistrationId);
}
return oldRegistrations.Select(x => x.InstanceRegistrationId).ToList();