Создание сервисов с порт-интерфейсом перенесено в IXxxFactory: шифр секретов, хранилище лимитов, ИИ-классификатор, ИИ-инструменты, файловое хранилище (Local/MinIO). Регистраторы и DiscoveryWorkerService больше не создают реализации напрямую. Добавлен тест FileStorageFactory.
34 lines
1.3 KiB
C#
34 lines
1.3 KiB
C#
using Deal.Modules.Discovery.Application.Abstractions;
|
|
using Deal.Modules.Discovery.Application.Services;
|
|
using Deal.Modules.Settings.Application.Abstractions;
|
|
using Microsoft.Extensions.DependencyInjection;
|
|
|
|
namespace Deal.Modules.Discovery.Application.Registrars;
|
|
|
|
/// <summary>
|
|
/// DI-регистрация модуля Discovery.
|
|
/// </summary>
|
|
public static class DiscoveryModuleRegistrar
|
|
{
|
|
/// <summary>
|
|
/// Регистрирует сервисы модуля Discovery в контейнере.
|
|
/// </summary>
|
|
public static IServiceCollection AddDiscoveryModule(this IServiceCollection services)
|
|
{
|
|
services.AddScoped<DiscoveryPlanGuard>();
|
|
services.AddScoped<DiscoveryTasksService>();
|
|
services.AddScoped<DiscoveryCandidatesService>();
|
|
services.AddScoped<DiscoveryBlacklistService>();
|
|
services.AddScoped<DiscoveryLogService>();
|
|
|
|
services.AddSingleton<IDiscoverySearchErrorCounter, DiscoverySearchErrorCounter>();
|
|
services.AddScoped<DiscoveryEvaluator>();
|
|
services.AddScoped<IDiscoveryPacer, DiscoveryPacer>();
|
|
services.AddScoped(sp => new DiscoveryBanGuard(
|
|
sp.GetRequiredService<IDiscoveryStore>(),
|
|
sp.GetRequiredService<ISettingsStore>()));
|
|
services.AddScoped<DiscoveryWorkerService>();
|
|
return services;
|
|
}
|
|
}
|