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);
}
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)
{
InvokeAsync(() =>
@ -178,7 +193,22 @@
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)
@ -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()
{
CampaignManagementState.OnCampaignCreated -= OnCampaignCreated;