Add progress to campaign entity

This commit is contained in:
2025-11-05 15:46:02 +09:00
parent 0169e5724d
commit 951ccd5924
6 changed files with 37 additions and 16 deletions

View File

@ -19,6 +19,8 @@ namespace Hcs.WebApp.BackgroundServices.CampaignManagers
protected HeadquartersService HeadquartersService => headquartersService ??= scope.ServiceProvider.GetRequiredService<HeadquartersService>();
protected abstract int StepCount { get; }
public Campaign Campaign => campaign;
public IManager.ManagerState State { get; protected set; } = IManager.ManagerState.Created;
@ -31,5 +33,18 @@ namespace Hcs.WebApp.BackgroundServices.CampaignManagers
State = IManager.ManagerState.Ended;
}
protected async Task ProgressStepAsync(int step)
{
using var context = HeadquartersService.GetNewContext();
await ProgressStepAsync(context, step);
}
protected async Task ProgressStepAsync(HcsDbContext context, int step)
{
campaign.Step = step;
campaign.Progress = (step + 1) / StepCount;
await HeadquartersService.UpdateCampaignStepAndProgressAsync(context, campaign);
}
}
}