diff --git a/Hcs.WebApp/BackgroundServices/CampaignManagementService.cs b/Hcs.WebApp/BackgroundServices/CampaignManagementService.cs index 7d75edc..45359c8 100644 --- a/Hcs.WebApp/BackgroundServices/CampaignManagementService.cs +++ b/Hcs.WebApp/BackgroundServices/CampaignManagementService.cs @@ -65,7 +65,7 @@ namespace Hcs.WebApp.BackgroundServices using var scope = scopeFactory.CreateScope(); var headquartersService = scope.ServiceProvider.GetRequiredService(); - var campaigns = await headquartersService.GetInitiatedCampaignAsync(); + var campaigns = await headquartersService.GetNotEndedCampaignsAsync(); foreach (var campaign in campaigns) { campaignManagementState.EnqueueCampaign(campaign); diff --git a/Hcs.WebApp/BackgroundServices/CampaignManagementState.cs b/Hcs.WebApp/BackgroundServices/CampaignManagementState.cs index 20d086d..8e494ac 100644 --- a/Hcs.WebApp/BackgroundServices/CampaignManagementState.cs +++ b/Hcs.WebApp/BackgroundServices/CampaignManagementState.cs @@ -7,21 +7,18 @@ namespace Hcs.WebApp.BackgroundServices { private readonly ConcurrentQueue campaigns = new(); - public event Action OnCampaignStarted; + public event Action OnCampaignCreated; public void EnqueueCampaign(Campaign campaign) { campaigns.Enqueue(campaign); + + OnCampaignCreated?.Invoke(campaign); } public bool TryDequeueCampaign(out Campaign campaign) { return campaigns.TryDequeue(out campaign); } - - public void InvokeOnCampaignStarted(Campaign campaign) - { - OnCampaignStarted?.Invoke(campaign); - } } } diff --git a/Hcs.WebApp/BackgroundServices/CampaignManagers/ExportCommonRegistryElementsManager_15_7_0_1.cs b/Hcs.WebApp/BackgroundServices/CampaignManagers/ExportCommonRegistryElementsManager_15_7_0_1.cs index 0e4e852..c7f88d6 100644 --- a/Hcs.WebApp/BackgroundServices/CampaignManagers/ExportCommonRegistryElementsManager_15_7_0_1.cs +++ b/Hcs.WebApp/BackgroundServices/CampaignManagers/ExportCommonRegistryElementsManager_15_7_0_1.cs @@ -7,7 +7,12 @@ namespace Hcs.WebApp.BackgroundServices.CampaignManagers { public override async Task StartAsync(IServiceScope scope) { - if (campaign.Step > 0) return; + if (campaign.StartedAt.HasValue) + { + State = IManager.ManagerState.Started; + + return; + } var headquartersService = scope.ServiceProvider.GetRequiredService(); var registryService = scope.ServiceProvider.GetRequiredService(); @@ -49,9 +54,9 @@ namespace Hcs.WebApp.BackgroundServices.CampaignManagers var hasActiveOperations = await headquartersService.HasActiveOperationsAsync(campaign.Id); if (!hasActiveOperations) { - State = IManager.ManagerState.Ended; - await headquartersService.SetCampaignEndedAsync(campaign.Id); + + State = IManager.ManagerState.Ended; } } } diff --git a/Hcs.WebApp/BackgroundServices/OperationExecutionState.cs b/Hcs.WebApp/BackgroundServices/OperationExecutionState.cs index f722f90..e59db0d 100644 --- a/Hcs.WebApp/BackgroundServices/OperationExecutionState.cs +++ b/Hcs.WebApp/BackgroundServices/OperationExecutionState.cs @@ -7,8 +7,6 @@ namespace Hcs.WebApp.BackgroundServices { private readonly ConcurrentQueue operations = new(); - public event Action OnOperationStarted; - public void EnqueueOperation(Operation operation) { operations.Enqueue(operation); @@ -18,10 +16,5 @@ namespace Hcs.WebApp.BackgroundServices { return operations.TryDequeue(out operation); } - - public void InvokeOnOperationStarted(Operation operation) - { - OnOperationStarted?.Invoke(operation); - } } } diff --git a/Hcs.WebApp/Components/Pages/Registry/Common.razor b/Hcs.WebApp/Components/Pages/Registry/Common.razor index 5193ec8..53aa351 100644 --- a/Hcs.WebApp/Components/Pages/Registry/Common.razor +++ b/Hcs.WebApp/Components/Pages/Registry/Common.razor @@ -88,12 +88,10 @@ { finalState = CommonPageState.OperationWaiting; } - else - { - registries = await RegistryService.GetAllRegistriesAsync(true); - } - CampaignManagementState.OnCampaignStarted += OnCampaignStarted; + CampaignManagementState.OnCampaignCreated += OnCampaignCreated; + + registries = await RegistryService.GetAllRegistriesAsync(true); } ChangeState(finalState); @@ -162,7 +160,7 @@ } } - void OnCampaignStarted(Campaign campaign) + void OnCampaignCreated(Campaign campaign) { if (campaign.Type == Campaign.CampaignType.ExportCommonRegistryElements_15_7_0_1) { @@ -172,6 +170,6 @@ public void Dispose() { - CampaignManagementState.OnCampaignStarted -= OnCampaignStarted; + CampaignManagementState.OnCampaignCreated -= OnCampaignCreated; } } diff --git a/Hcs.WebApp/Services/HeadquartersService.cs b/Hcs.WebApp/Services/HeadquartersService.cs index 56a35ba..a52a323 100644 --- a/Hcs.WebApp/Services/HeadquartersService.cs +++ b/Hcs.WebApp/Services/HeadquartersService.cs @@ -17,7 +17,7 @@ namespace Hcs.WebApp.Services return await context.Operations.CountAsync(x => x.CampaignId == campaignId && !x.EndedAt.HasValue) > 0; } - public async Task> GetInitiatedCampaignAsync() + public async Task> GetNotEndedCampaignsAsync() { using var context = GetNewContext(); return await (from campaign in context.Campaigns @@ -29,7 +29,7 @@ namespace Hcs.WebApp.Services { using var context = GetNewContext(); return await (from operation in context.Operations - where !operation.EndedAt.HasValue && string.IsNullOrEmpty(operation.MessageGuid) + where string.IsNullOrEmpty(operation.MessageGuid) select operation).ToListAsync(); }