From 96a13dcd7c0e4d7c1edd77aa5ae7643760906fa4 Mon Sep 17 00:00:00 2001 From: "HOME-LAPTOP\\kshkulev" Date: Thu, 20 Nov 2025 11:28:13 +0900 Subject: [PATCH] Create campaing managers dynamically --- .../CampaignManagers/ManagerFactory.cs | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/Hcs.WebApp/BackgroundServices/CampaignManagers/ManagerFactory.cs b/Hcs.WebApp/BackgroundServices/CampaignManagers/ManagerFactory.cs index 36a5bcd..abca7c7 100644 --- a/Hcs.WebApp/BackgroundServices/CampaignManagers/ManagerFactory.cs +++ b/Hcs.WebApp/BackgroundServices/CampaignManagers/ManagerFactory.cs @@ -7,15 +7,19 @@ namespace Hcs.WebApp.BackgroundServices.CampaignManagers protected readonly IServiceScopeFactory serviceScopeFactory = serviceScopeFactory; protected readonly OperationExecutionState operationExecutionState = operationExecutionState; protected readonly ResultGetState resultGetState = resultGetState; + protected readonly DataParsingState dataParsingState = dataParsingState; public IManager CreateManager(Campaign campaign) { - return campaign.Type switch + var type = campaign.Type switch { - Campaign.CampaignType.ExportPrivateRegistryElements_15_7_0_1 => new ExportPrivateRegistryElementsManager_15_7_0_1(serviceScopeFactory, operationExecutionState, resultGetState, dataParsingState, campaign), - Campaign.CampaignType.ExportCommonRegistryElements_15_7_0_1 => new ExportCommonRegistryElementsManager_15_7_0_1(serviceScopeFactory, operationExecutionState, resultGetState, dataParsingState, campaign), - Campaign.CampaignType.ParseHousesData_15_7_0_1 => new ParseHousesDataManager_15_7_0_1(serviceScopeFactory, operationExecutionState, resultGetState, dataParsingState, campaign) + Campaign.CampaignType.ExportPrivateRegistryElements_15_7_0_1 => typeof(ExportPrivateRegistryElementsManager_15_7_0_1), + Campaign.CampaignType.ExportCommonRegistryElements_15_7_0_1 => typeof(ExportCommonRegistryElementsManager_15_7_0_1), + Campaign.CampaignType.ParseHousesData_15_7_0_1 => typeof(ParseHousesDataManager_15_7_0_1) }; + var args = new object[] { serviceScopeFactory, operationExecutionState, resultGetState, dataParsingState, campaign }; + var instance = Activator.CreateInstance(type, args); + return (IManager)instance!; } } }