Change events args

This commit is contained in:
2025-11-05 18:49:58 +09:00
parent e58221c430
commit 1d58bf8439
10 changed files with 99 additions and 66 deletions

View File

@ -5,12 +5,16 @@ namespace Hcs.WebApp.BackgroundServices
{
public class CampaignManagementState
{
public delegate void CampaignStarted(int campaignId, DateTime startedAt);
public delegate void CampaignProgressStep(int campaignId, int step, int progress);
public delegate void CampaignEnded(int campaignId, Campaign.CampaignType type, DateTime endedAt, string failureReason);
private readonly ConcurrentQueue<Campaign> campaigns = new();
public event Action<Campaign> OnCampaignCreated;
public event Action<Campaign> OnCampaignStarted;
public event Action<Campaign> OnCampaignProgressStep;
public event Action<Campaign> OnCampaignEnded;
public event CampaignStarted OnCampaignStarted;
public event CampaignProgressStep OnCampaignProgressStep;
public event CampaignEnded OnCampaignEnded;
public void EnqueueCampaign(Campaign campaign)
{
@ -24,29 +28,29 @@ namespace Hcs.WebApp.BackgroundServices
return campaigns.TryDequeue(out campaign);
}
public void InvokeOnCampaignStarted(Campaign campaign)
public void InvokeOnCampaignStarted(int campaignId, DateTime startedAt)
{
try
{
OnCampaignStarted?.Invoke(campaign);
OnCampaignStarted?.Invoke(campaignId, startedAt);
}
catch { }
}
public void InvokeOnCampaignProgressStep(Campaign campaign)
public void InvokeOnCampaignProgressStep(int campaignId, int step, int progress)
{
try
{
OnCampaignProgressStep?.Invoke(campaign);
OnCampaignProgressStep?.Invoke(campaignId, step, progress);
}
catch { }
}
public void InvokeOnCampaignEnded(Campaign campaign)
public void InvokeOnCampaignEnded(int campaignId, Campaign.CampaignType type, DateTime endedAt, string failureReason)
{
try
{
OnCampaignEnded?.Invoke(campaign);
OnCampaignEnded?.Invoke(campaignId, type, endedAt, failureReason);
}
catch { }
}