Refresh campaign started date UI
This commit is contained in:
@ -38,6 +38,7 @@ namespace Hcs.WebApp.BackgroundServices
|
||||
{
|
||||
managers.Add(manager);
|
||||
|
||||
manager.OnCampaignStarted += OnCampaignStarted;
|
||||
manager.OnCampaignProgressStep += OnCampaignProgressStep;
|
||||
}
|
||||
else
|
||||
@ -65,6 +66,7 @@ namespace Hcs.WebApp.BackgroundServices
|
||||
{
|
||||
campaignManagementState.InvokeOnCampaignEnded(manager.Campaign);
|
||||
|
||||
manager.OnCampaignStarted -= OnCampaignStarted;
|
||||
manager.OnCampaignProgressStep -= OnCampaignProgressStep;
|
||||
}
|
||||
}
|
||||
@ -102,6 +104,11 @@ namespace Hcs.WebApp.BackgroundServices
|
||||
}
|
||||
}
|
||||
|
||||
private void OnCampaignStarted(Campaign campaign)
|
||||
{
|
||||
campaignManagementState.InvokeOnCampaignStarted(campaign);
|
||||
}
|
||||
|
||||
private void OnCampaignProgressStep(Campaign campaign)
|
||||
{
|
||||
campaignManagementState.InvokeOnCampaignProgressStep(campaign);
|
||||
|
||||
@ -8,6 +8,7 @@ namespace Hcs.WebApp.BackgroundServices
|
||||
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;
|
||||
|
||||
@ -23,11 +24,11 @@ namespace Hcs.WebApp.BackgroundServices
|
||||
return campaigns.TryDequeue(out campaign);
|
||||
}
|
||||
|
||||
public void InvokeOnCampaignEnded(Campaign campaign)
|
||||
public void InvokeOnCampaignStarted(Campaign campaign)
|
||||
{
|
||||
try
|
||||
{
|
||||
OnCampaignEnded?.Invoke(campaign);
|
||||
OnCampaignStarted?.Invoke(campaign);
|
||||
}
|
||||
catch { }
|
||||
}
|
||||
@ -40,5 +41,14 @@ namespace Hcs.WebApp.BackgroundServices
|
||||
}
|
||||
catch { }
|
||||
}
|
||||
|
||||
public void InvokeOnCampaignEnded(Campaign campaign)
|
||||
{
|
||||
try
|
||||
{
|
||||
OnCampaignEnded?.Invoke(campaign);
|
||||
}
|
||||
catch { }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -15,6 +15,7 @@ namespace Hcs.WebApp.BackgroundServices.CampaignManagers
|
||||
|
||||
public ManagerState State { get; }
|
||||
|
||||
event Action<Campaign> OnCampaignStarted;
|
||||
event Action<Campaign> OnCampaignProgressStep;
|
||||
|
||||
Task ProcessAsync();
|
||||
|
||||
@ -81,6 +81,7 @@
|
||||
if (state.User.IsInRole(AppRole.ADMINISTRATOR_TYPE) || state.User.IsInRole(AppRole.OPERATOR_TYPE))
|
||||
{
|
||||
CampaignManagementState.OnCampaignCreated += OnCampaignCreated;
|
||||
CampaignManagementState.OnCampaignStarted += OnCampaignStarted;
|
||||
CampaignManagementState.OnCampaignProgressStep += OnCampaignProgressStep;
|
||||
CampaignManagementState.OnCampaignEnded += OnCampaignEnded;
|
||||
|
||||
@ -113,6 +114,18 @@
|
||||
Task.Run(RefreshCampaigns);
|
||||
}
|
||||
|
||||
void OnCampaignStarted(Campaign campaign)
|
||||
{
|
||||
InvokeAsync(() =>
|
||||
{
|
||||
var targetCampaign = campaigns.FirstOrDefault(x => x.Id == campaign.Id);
|
||||
if (targetCampaign != null)
|
||||
{
|
||||
targetCampaign.StartedAt = campaign.StartedAt;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
void OnCampaignProgressStep(Campaign campaign)
|
||||
{
|
||||
InvokeAsync(() =>
|
||||
@ -148,6 +161,7 @@
|
||||
public void Dispose()
|
||||
{
|
||||
CampaignManagementState.OnCampaignCreated -= OnCampaignCreated;
|
||||
CampaignManagementState.OnCampaignStarted -= OnCampaignStarted;
|
||||
CampaignManagementState.OnCampaignProgressStep -= OnCampaignProgressStep;
|
||||
CampaignManagementState.OnCampaignEnded -= OnCampaignEnded;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user