Create campaing managers dynamically

This commit is contained in:
2025-11-20 11:28:13 +09:00
parent f3249da6d9
commit 96a13dcd7c

View File

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