Do not reload data when campaign ends UI

This commit is contained in:
2025-11-05 18:51:42 +09:00
parent 1d58bf8439
commit 0d27beb2a6

View File

@ -137,6 +137,21 @@
Task.Run(RefreshCampaigns); Task.Run(RefreshCampaigns);
} }
async Task RefreshCampaigns()
{
await InvokeAsync(() => ChangeState(CampaignsPageState.Loading));
var refreshedCampaigns = await HeadquartersService.GetCampaignsAsync();
await InvokeAsync(() =>
{
campaigns = refreshedCampaigns;
expandedCampaign = null;
ChangeState(CampaignsPageState.Idle);
});
}
void OnCampaignStarted(int campaignId, DateTime startedAt) void OnCampaignStarted(int campaignId, DateTime startedAt)
{ {
InvokeAsync(() => InvokeAsync(() =>
@ -178,7 +193,22 @@
void OnCampaignEnded(int campaignId, Campaign.CampaignType type, DateTime endedAt, string failureReason) void OnCampaignEnded(int campaignId, Campaign.CampaignType type, DateTime endedAt, string failureReason)
{ {
Task.Run(RefreshCampaigns); InvokeAsync(() =>
{
var targetCampaign = campaigns?.FirstOrDefault(x => x.Id == campaignId);
if (targetCampaign != null)
{
targetCampaign.EndedAt = endedAt;
targetCampaign.FailureReason = failureReason;
campaignsDataGrid.Reload();
}
if (expandedCampaign != null && expandedCampaign.Id == campaignId)
{
campaignsDataGrid.CollapseAll();
}
});
} }
void OnOperationStarted(int operationId, int campaignId, DateTime startedAt) void OnOperationStarted(int operationId, int campaignId, DateTime startedAt)
@ -233,21 +263,6 @@
}); });
} }
async Task RefreshCampaigns()
{
await InvokeAsync(() => ChangeState(CampaignsPageState.Loading));
var refreshedCampaigns = await HeadquartersService.GetCampaignsAsync();
await InvokeAsync(() =>
{
campaigns = refreshedCampaigns;
expandedCampaign = null;
ChangeState(CampaignsPageState.Idle);
});
}
public void Dispose() public void Dispose()
{ {
CampaignManagementState.OnCampaignCreated -= OnCampaignCreated; CampaignManagementState.OnCampaignCreated -= OnCampaignCreated;