Create campaing managers dynamically
This commit is contained in:
@ -7,15 +7,19 @@ namespace Hcs.WebApp.BackgroundServices.CampaignManagers
|
|||||||
protected readonly IServiceScopeFactory serviceScopeFactory = serviceScopeFactory;
|
protected readonly IServiceScopeFactory serviceScopeFactory = serviceScopeFactory;
|
||||||
protected readonly OperationExecutionState operationExecutionState = operationExecutionState;
|
protected readonly OperationExecutionState operationExecutionState = operationExecutionState;
|
||||||
protected readonly ResultGetState resultGetState = resultGetState;
|
protected readonly ResultGetState resultGetState = resultGetState;
|
||||||
|
protected readonly DataParsingState dataParsingState = dataParsingState;
|
||||||
|
|
||||||
public IManager CreateManager(Campaign campaign)
|
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.ExportPrivateRegistryElements_15_7_0_1 => typeof(ExportPrivateRegistryElementsManager_15_7_0_1),
|
||||||
Campaign.CampaignType.ExportCommonRegistryElements_15_7_0_1 => new ExportCommonRegistryElementsManager_15_7_0_1(serviceScopeFactory, operationExecutionState, resultGetState, dataParsingState, campaign),
|
Campaign.CampaignType.ExportCommonRegistryElements_15_7_0_1 => typeof(ExportCommonRegistryElementsManager_15_7_0_1),
|
||||||
Campaign.CampaignType.ParseHousesData_15_7_0_1 => new ParseHousesDataManager_15_7_0_1(serviceScopeFactory, operationExecutionState, resultGetState, dataParsingState, campaign)
|
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!;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user