Add progress to campaign entity
This commit is contained in:
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user