Files
Deal/src/core/Deal.Modules.Discovery/Application/Registrars/DiscoveryModuleRegistrar.cs
T
stepan d172b6408b Внедрить фабрики объектов вместо прямого new
Создание сервисов с порт-интерфейсом перенесено в IXxxFactory:
шифр секретов, хранилище лимитов, ИИ-классификатор, ИИ-инструменты,
файловое хранилище (Local/MinIO). Регистраторы и DiscoveryWorkerService
больше не создают реализации напрямую. Добавлен тест FileStorageFactory.
2026-09-13 03:41:39 +03:00

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;
}
}