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

@ -40,14 +40,17 @@ namespace Hcs.WebApp.BackgroundServices
manager.OnCampaignStarted += OnCampaignStarted;
manager.OnCampaignProgressStep += OnCampaignProgressStep;
manager.OnCampaignEnded += OnCampaignEnded;
}
else
{
using var scope = scopeFactory.CreateScope();
var headquartersService = scope.ServiceProvider.GetRequiredService<HeadquartersService>();
await headquartersService.SetCampaignEndedWithFailAsync(campaign.Id, "Не удалось найти подходящий менеджер кампании");
var endedAt = DateTime.UtcNow;
var failureReason = "Не удалось найти подходящий менеджер кампании";
await headquartersService.SetCampaignEndedWithFailAsync(campaign.Id, endedAt, failureReason);
campaignManagementState.InvokeOnCampaignEnded(campaign);
campaignManagementState.InvokeOnCampaignEnded(campaign.Id, campaign.Type, endedAt, failureReason);
}
}
@ -64,10 +67,9 @@ namespace Hcs.WebApp.BackgroundServices
if (manager.State == IManager.ManagerState.Ended)
{
campaignManagementState.InvokeOnCampaignEnded(manager.Campaign);
manager.OnCampaignStarted -= OnCampaignStarted;
manager.OnCampaignProgressStep -= OnCampaignProgressStep;
manager.OnCampaignEnded -= OnCampaignEnded;
}
}
@ -104,14 +106,19 @@ namespace Hcs.WebApp.BackgroundServices
}
}
private void OnCampaignStarted(Campaign campaign)
private void OnCampaignStarted(int campaignId, DateTime startedAt)
{
campaignManagementState.InvokeOnCampaignStarted(campaign);
campaignManagementState.InvokeOnCampaignStarted(campaignId, startedAt);
}
private void OnCampaignProgressStep(Campaign campaign)
private void OnCampaignProgressStep(int campaignId, int step, int progress)
{
campaignManagementState.InvokeOnCampaignProgressStep(campaign);
campaignManagementState.InvokeOnCampaignProgressStep(campaignId, step, progress);
}
private void OnCampaignEnded(int campaignId, Campaign.CampaignType type, DateTime endedAt, string failureReason)
{
campaignManagementState.InvokeOnCampaignEnded(campaignId, type, endedAt, failureReason);
}
}
}