feat(api, Core, Domain, Dal): Для entity моделей, для DateModified создан атрибут ManualControl - отключает автоматическое управление датой. TaskReconciliationService - сервис по управлению задачами в статусах ошибки, зависла. ITaskMqSettingsProvider - провайдер для управления настройками MQ в зависимости от TaskType
This commit is contained in:
@@ -7,8 +7,10 @@ using PARR.Core.Services.Task.Handlers;
|
||||
using PARR.Core.Services.Task.Handlers.Factory;
|
||||
using PARR.Core.Services.Task.Implementations;
|
||||
using PARR.Core.Services.Task.Interfaces;
|
||||
using PARR.Core.Services.Task.Providers;
|
||||
using PARR.Core.Services.Workload.Implementations;
|
||||
using PARR.Core.Services.Workload.Interfaces;
|
||||
using PARR.Domain.Enums;
|
||||
using PARR.Domain.Settings;
|
||||
|
||||
namespace PARR.Core
|
||||
@@ -43,15 +45,20 @@ namespace PARR.Core
|
||||
|
||||
#region Task
|
||||
|
||||
// Регистрация хендлеров (нужно регистировать каждый отдельно)
|
||||
services.AddScoped<WorkloadReportHandler>();
|
||||
services.AddScoped<BaseTaskHandler>(sp => sp.GetRequiredService<WorkloadReportHandler>());// регим для фабрики
|
||||
// Еще хэндлеры...
|
||||
// ---------> Регистрируем в AddTaskManagement <---------
|
||||
|
||||
// Фабрика хэндлеров
|
||||
services.AddScoped<ITaskHandlerFactory, TaskHandlerFactory>();
|
||||
//// Регистрация хендлеров (нужно регистировать каждый отдельно)
|
||||
//services.AddScoped<WorkloadReportHandler>();
|
||||
//services.AddScoped<BaseTaskHandler>(sp => sp.GetRequiredService<WorkloadReportHandler>());// регим для фабрики
|
||||
//// Еще хэндлеры...
|
||||
|
||||
services.AddScoped<ITaskManagementService, TaskManagementService>();
|
||||
//// Фабрика хэндлеров
|
||||
//services.AddScoped<ITaskHandlerFactory, TaskHandlerFactory>();
|
||||
|
||||
//services.AddScoped<ITaskManagementService, TaskManagementService>();
|
||||
|
||||
//// Провайдер настроек MQ
|
||||
//services.AddSingleton<ITaskMqSettingsProvider, TaskMqSettingsProvider>();
|
||||
|
||||
#endregion
|
||||
|
||||
@@ -71,6 +78,35 @@ namespace PARR.Core
|
||||
return services;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Регистрация сервисов по управлению задчами (Task)
|
||||
/// </summary>
|
||||
/// <param name="services"></param>
|
||||
/// <param name="mqSettingsFactory">Настройки MQ для всех TaskTypeEnum</param>
|
||||
/// <returns></returns>
|
||||
/// <exception cref="ArgumentNullException"></exception>
|
||||
public static IServiceCollection AddTaskManagement(this IServiceCollection services, Func<IServiceProvider, TaskTypeEnum, IMqSettings> mqSettingsFactory)
|
||||
{
|
||||
if (mqSettingsFactory == null)
|
||||
throw new ArgumentNullException(nameof(mqSettingsFactory), "Ты забыл зарегистрировать настройки MQ для Task! Бестолочь! :)");
|
||||
|
||||
// Регистрация хендлеров (нужно регистировать каждый отдельно)
|
||||
services.AddScoped<WorkloadReportHandler>();
|
||||
services.AddScoped<BaseTaskHandler>(sp => sp.GetRequiredService<WorkloadReportHandler>());// регим для фабрики хэндлеров
|
||||
// Еще хэндлеры...
|
||||
|
||||
// Фабрика хэндлеров
|
||||
services.AddScoped<ITaskHandlerFactory, TaskHandlerFactory>();
|
||||
|
||||
services.AddScoped<ITaskManagementService, TaskManagementService>();
|
||||
|
||||
// Провайдер настроек MQ
|
||||
services.AddTransient<Func<TaskTypeEnum, IMqSettings>>(sp => (taskType) => mqSettingsFactory(sp, taskType)); // регим фабрику настроек для ITaskMqSettingsProvider
|
||||
services.AddSingleton<ITaskMqSettingsProvider, TaskMqSettingsProvider>();
|
||||
|
||||
return services;
|
||||
}
|
||||
|
||||
|
||||
private static IServiceCollection AddBllMapping(this IServiceCollection services)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user