From c8686a58998c68dbef0824a0fd6415d649744024 Mon Sep 17 00:00:00 2001 From: "HOME-LAPTOP\\kshkulev" Date: Tue, 28 Oct 2025 15:29:17 +0900 Subject: [PATCH] Treat common and private registries separately --- ...xportCommonRegistryElementsManager_15_7_0_1.cs} | 6 +++--- .../CampaignManagers/ManagerFactory.cs | 4 ++-- Hcs.WebApp/Components/Pages/Registry/Common.razor | 8 ++++---- Hcs.WebApp/Data/Hcs/Campaign.cs | 3 ++- Hcs.WebApp/Data/Hcs/Operation.cs | 3 ++- Hcs.WebApp/Services/RegistryService.cs | 14 ++++++++++---- 6 files changed, 23 insertions(+), 15 deletions(-) rename Hcs.WebApp/BackgroundServices/CampaignManagers/{ExportRequiredRegistryElementsManager_15_7_0_1.cs => ExportCommonRegistryElementsManager_15_7_0_1.cs} (89%) diff --git a/Hcs.WebApp/BackgroundServices/CampaignManagers/ExportRequiredRegistryElementsManager_15_7_0_1.cs b/Hcs.WebApp/BackgroundServices/CampaignManagers/ExportCommonRegistryElementsManager_15_7_0_1.cs similarity index 89% rename from Hcs.WebApp/BackgroundServices/CampaignManagers/ExportRequiredRegistryElementsManager_15_7_0_1.cs rename to Hcs.WebApp/BackgroundServices/CampaignManagers/ExportCommonRegistryElementsManager_15_7_0_1.cs index 54ded2a..10005de 100644 --- a/Hcs.WebApp/BackgroundServices/CampaignManagers/ExportRequiredRegistryElementsManager_15_7_0_1.cs +++ b/Hcs.WebApp/BackgroundServices/CampaignManagers/ExportCommonRegistryElementsManager_15_7_0_1.cs @@ -3,7 +3,7 @@ using Hcs.WebApp.Services; namespace Hcs.WebApp.BackgroundServices.CampaignManagers { - public class ExportRequiredRegistryElementsManager_15_7_0_1(IServiceScope scope, OperationExecutionState operationExecutionState, Campaign campaign) : ManagerBase(scope, operationExecutionState, campaign) + public class ExportCommonRegistryElementsManager_15_7_0_1(IServiceScope scope, OperationExecutionState operationExecutionState, Campaign campaign) : ManagerBase(scope, operationExecutionState, campaign) { public override async Task StartAsync() { @@ -18,9 +18,9 @@ namespace Hcs.WebApp.BackgroundServices.CampaignManagers { await headquartersService.SetCampaignStartedAsync(context, campaign.Id); await headquartersService.SetCampaignStepAsync(context, campaign.Id, 1); - var registryCount = await registryService.GetRegistryCountAsync(context); + var registryCount = await registryService.GetRegistryCountAsync(context, true); operations = await headquartersService.InitiateOperationsAsync(context, registryCount, campaign.Id, Operation.OperationType.NsiCommon_ExportNsiItem_15_7_0_1); - await registryService.SetOperationsToRegistriesAsync(context, operations); + await registryService.SetOperationsToRegistriesAsync(context, true, operations); await transaction.CommitAsync(); } catch diff --git a/Hcs.WebApp/BackgroundServices/CampaignManagers/ManagerFactory.cs b/Hcs.WebApp/BackgroundServices/CampaignManagers/ManagerFactory.cs index 0019a9c..bc1e44a 100644 --- a/Hcs.WebApp/BackgroundServices/CampaignManagers/ManagerFactory.cs +++ b/Hcs.WebApp/BackgroundServices/CampaignManagers/ManagerFactory.cs @@ -10,8 +10,8 @@ namespace Hcs.WebApp.BackgroundServices.CampaignManagers { switch (campaign.Type) { - case Campaign.CampaignType.ExportRequiredRegistryElements_15_7_0_1: - return new ExportRequiredRegistryElementsManager_15_7_0_1(scope, state, campaign); + case Campaign.CampaignType.ExportCommonRegistryElements_15_7_0_1: + return new ExportCommonRegistryElementsManager_15_7_0_1(scope, state, campaign); } throw new NotImplementedException(); diff --git a/Hcs.WebApp/Components/Pages/Registry/Common.razor b/Hcs.WebApp/Components/Pages/Registry/Common.razor index 601cd30..43db03b 100644 --- a/Hcs.WebApp/Components/Pages/Registry/Common.razor +++ b/Hcs.WebApp/Components/Pages/Registry/Common.razor @@ -83,7 +83,7 @@ var state = await AuthenticationStateProvider.GetAuthenticationStateAsync(); if (state.User.IsInRole(AppRole.ADMINISTRATOR_TYPE) || state.User.IsInRole(AppRole.OPERATOR_TYPE)) { - var operationInProgress = await HeadquartersService.HasActiveCampaignAsync(Campaign.CampaignType.ExportRequiredRegistryElements_15_7_0_1); + var operationInProgress = await HeadquartersService.HasActiveCampaignAsync(Campaign.CampaignType.ExportCommonRegistryElements_15_7_0_1); if (operationInProgress) { finalState = CommonPageState.OperationWaiting; @@ -106,14 +106,14 @@ ChangeState(CommonPageState.OperationWaiting); - if (await HeadquartersService.HasActiveCampaignAsync(Campaign.CampaignType.ExportRequiredRegistryElements_15_7_0_1)) + if (await HeadquartersService.HasActiveCampaignAsync(Campaign.CampaignType.ExportCommonRegistryElements_15_7_0_1)) { ChangeState(CommonPageState.Idle); } else { // TODO: Use user id - var campaign = await HeadquartersService.InitiateCampaignAsync(Campaign.CampaignType.ExportRequiredRegistryElements_15_7_0_1, ""); + var campaign = await HeadquartersService.InitiateCampaignAsync(Campaign.CampaignType.ExportCommonRegistryElements_15_7_0_1, ""); CampaignManagementState.EnqueueCampaign(campaign); } } @@ -164,7 +164,7 @@ void OnCampaignStarted(Campaign campaign) { - if (campaign.Type == Campaign.CampaignType.ExportRequiredRegistryElements_15_7_0_1) + if (campaign.Type == Campaign.CampaignType.ExportCommonRegistryElements_15_7_0_1) { InvokeAsync(() => ChangeState(CommonPageState.OperationWaiting)); } diff --git a/Hcs.WebApp/Data/Hcs/Campaign.cs b/Hcs.WebApp/Data/Hcs/Campaign.cs index 7786636..881b663 100644 --- a/Hcs.WebApp/Data/Hcs/Campaign.cs +++ b/Hcs.WebApp/Data/Hcs/Campaign.cs @@ -6,7 +6,8 @@ namespace Hcs.WebApp.Data.Hcs { public enum CampaignType { - ExportRequiredRegistryElements_15_7_0_1 + ExportCommonRegistryElements_15_7_0_1, + ExportPrivateRegistryElements_15_7_0_1 } public int Id { get; set; } diff --git a/Hcs.WebApp/Data/Hcs/Operation.cs b/Hcs.WebApp/Data/Hcs/Operation.cs index dce6c53..90daf5d 100644 --- a/Hcs.WebApp/Data/Hcs/Operation.cs +++ b/Hcs.WebApp/Data/Hcs/Operation.cs @@ -6,7 +6,8 @@ namespace Hcs.WebApp.Data.Hcs { public enum OperationType { - NsiCommon_ExportNsiItem_15_7_0_1 + NsiCommon_ExportNsiItem_15_7_0_1, + Nsi_ExportNsiItem_15_7_0_1 } public int Id { get; set; } diff --git a/Hcs.WebApp/Services/RegistryService.cs b/Hcs.WebApp/Services/RegistryService.cs index aa877a1..12205b9 100644 --- a/Hcs.WebApp/Services/RegistryService.cs +++ b/Hcs.WebApp/Services/RegistryService.cs @@ -5,9 +5,9 @@ namespace Hcs.WebApp.Services { public class RegistryService(IDbContextFactory factory) : HcsServiceBase(factory) { - public async Task GetRegistryCountAsync(HcsDbContext context) + public async Task GetRegistryCountAsync(HcsDbContext context, bool isCommon) { - return await context.Registries.CountAsync(); + return await context.Registries.CountAsync(x => x.IsCommon == isCommon); } public async Task> GetAllRegistriesAsync(bool isCommon) @@ -32,10 +32,16 @@ namespace Hcs.WebApp.Services select registry).ToListAsync(); } - public async Task SetOperationsToRegistriesAsync(HcsDbContext context, IEnumerable operations) + public async Task SetOperationsToRegistriesAsync(HcsDbContext context, bool isCommon, IEnumerable operations) { var queue = new Queue(operations); - await context.Registries.ForEachAsync(x => x.LastSyncOperationId = queue.Dequeue().Id); + await context.Registries.ForEachAsync(x => + { + if (x.IsCommon == isCommon) + { + x.LastSyncOperationId = queue.Dequeue().Id; + } + }); await context.SaveChangesAsync(); } }