Add campaign manager

This commit is contained in:
2025-10-27 10:02:58 +09:00
parent 891d462af1
commit 7c35c9a7df
18 changed files with 250 additions and 41 deletions

View File

@ -0,0 +1,12 @@
using Hcs.WebApp.Data.Hcs;
namespace Hcs.WebApp.BackgroundServices.CampaignManagers
{
public class ExportRequiredRegistryElementsManager_15_7_0_1(OperationExecutionState state, IServiceScopeFactory scopeFactory, Campaign campaign) : ManagerBase(state, scopeFactory, campaign)
{
public override async Task StartAsync(CancellationToken cancellationToken)
{
// TODO
}
}
}

View File

@ -0,0 +1,7 @@
namespace Hcs.WebApp.BackgroundServices.CampaignManagers
{
public interface IManager
{
Task StartAsync(CancellationToken cancellationToken);
}
}

View File

@ -0,0 +1,13 @@
using Hcs.WebApp.Data.Hcs;
namespace Hcs.WebApp.BackgroundServices.CampaignManagers
{
public abstract class ManagerBase(OperationExecutionState state, IServiceScopeFactory scopeFactory, Campaign campaign) : IManager
{
protected readonly OperationExecutionState state = state;
protected readonly IServiceScopeFactory scopeFactory = scopeFactory;
protected readonly Campaign campaign = campaign;
public abstract Task StartAsync(CancellationToken cancellationToken);
}
}

View File

@ -0,0 +1,21 @@
using Hcs.WebApp.Data.Hcs;
namespace Hcs.WebApp.BackgroundServices.CampaignManagers
{
public class ManagerFactory(OperationExecutionState state, IServiceScopeFactory scopeFactory)
{
protected readonly OperationExecutionState state = state;
protected readonly IServiceScopeFactory scopeFactory = scopeFactory;
public IManager CreateManager(Campaign campaign)
{
switch (campaign.Type)
{
case Campaign.CampaignType.ExportRequiredRegistryElements_15_7_0_1:
return new ExportRequiredRegistryElementsManager_15_7_0_1(state, scopeFactory, campaign);
}
throw new NotImplementedException();
}
}
}