using Hcs.WebApp.Data.Hcs; namespace Hcs.WebApp.BackgroundServices.CampaignManagers { public class ManagerFactory(IServiceScopeFactory serviceScopeFactory, OperationExecutionState operationExecutionState, ResultWaitState resultWaitState) { protected readonly IServiceScopeFactory serviceScopeFactory = serviceScopeFactory; protected readonly OperationExecutionState operationExecutionState = operationExecutionState; protected readonly ResultWaitState resultWaitState = resultWaitState; public IManager CreateManager(Campaign campaign) { return campaign.Type switch { Campaign.CampaignType.ExportPrivateRegistryElements_15_7_0_1 => new ExportPrivateRegistryElementsManager_15_7_0_1(serviceScopeFactory, operationExecutionState, resultWaitState, campaign), Campaign.CampaignType.ExportCommonRegistryElements_15_7_0_1 => new ExportCommonRegistryElementsManager_15_7_0_1(serviceScopeFactory, operationExecutionState, resultWaitState, campaign), Campaign.CampaignType.ParseHousesData_15_7_0_1 => new ParseHousesDataManager_15_7_0_1(serviceScopeFactory, operationExecutionState, resultWaitState, campaign) }; } } }