diff --git a/InServiceQue/Services/QueueService.cs b/InServiceQue/Services/QueueService.cs index f36343a..34acf1d 100644 --- a/InServiceQue/Services/QueueService.cs +++ b/InServiceQue/Services/QueueService.cs @@ -9,13 +9,11 @@ namespace InServiceQue.Services; public class QueueService : BackgroundService, IQueueService where T: IQueueTask { - private readonly ITypeRegistry _typeRegistry; private readonly ITaskRepository _repository; private readonly IServiceProvider _serviceProvider; - public QueueService(ITypeRegistry typeRegistry, ITaskRepository repository, IServiceProvider serviceProvider) + public QueueService(ITaskRepository repository, IServiceProvider serviceProvider) { - _typeRegistry = typeRegistry; _repository = repository; _serviceProvider = serviceProvider; } @@ -25,17 +23,15 @@ where T: IQueueTask using (var scope = _serviceProvider.CreateScope()) { using var tx = _repository.StartTransaction(); - var queueTask = _repository.GetNextTask(tx); + var queueTask = _repository.GetNextTask(tx, typeof(T).Name); if (queueTask == null) { _repository.RollbackTransaction(tx); return; } - var taskType = queueTask.TaskType; - var ttype = typeof(T); - Debug.WriteLine($"TType: {ttype}, TaskType: {taskType}"); - var handler = _typeRegistry.GetService(scope, taskType); + var serviceHandler = scope.ServiceProvider.GetService(typeof(IQueueHandler<>).MakeGenericType(typeof(T))); + var handler = (IQueueHandler)serviceHandler; try {