From 1b1fa4bbaa6bddd312a111bf1a400ec06c8f4fae Mon Sep 17 00:00:00 2001 From: "HOME-LAPTOP\\kshkulev" Date: Fri, 14 Nov 2025 17:13:00 +0900 Subject: [PATCH] Add new campaign template --- .../CampaignManagementService.cs | 21 ++++--------------- .../ExportHousesDataManager_15_7_0_1.cs | 18 ++++++++++++++++ .../CampaignManagers/ManagerFactory.cs | 5 ++--- .../OperationExecutors/ExecutorFactory.cs | 4 +--- .../ResultGetters/ResultGetterFactory.cs | 4 +--- 5 files changed, 26 insertions(+), 26 deletions(-) create mode 100644 Hcs.WebApp/BackgroundServices/CampaignManagers/ExportHousesDataManager_15_7_0_1.cs diff --git a/Hcs.WebApp/BackgroundServices/CampaignManagementService.cs b/Hcs.WebApp/BackgroundServices/CampaignManagementService.cs index b56de06..3eb8580 100644 --- a/Hcs.WebApp/BackgroundServices/CampaignManagementService.cs +++ b/Hcs.WebApp/BackgroundServices/CampaignManagementService.cs @@ -34,24 +34,11 @@ namespace Hcs.WebApp.BackgroundServices if (stoppingToken.IsCancellationRequested) return; var manager = managerFactory.CreateManager(campaign); - if (manager != null) - { - managers.Add(manager); + manager.OnCampaignStarted += OnCampaignStarted; + manager.OnCampaignProgressStep += OnCampaignProgressStep; + manager.OnCampaignEnded += OnCampaignEnded; - manager.OnCampaignStarted += OnCampaignStarted; - manager.OnCampaignProgressStep += OnCampaignProgressStep; - manager.OnCampaignEnded += OnCampaignEnded; - } - else - { - using var scope = scopeFactory.CreateScope(); - var headquartersService = scope.ServiceProvider.GetRequiredService(); - var endedAt = DateTime.UtcNow; - var failureReason = "Не удалось найти подходящий менеджер кампании"; - await headquartersService.SetCampaignEndedWithFailAsync(campaign.Id, endedAt, failureReason); - - campaignManagementState.InvokeOnCampaignEnded(campaign.Id, campaign.Type, endedAt, failureReason); - } + managers.Add(manager); } foreach (var manager in managers) diff --git a/Hcs.WebApp/BackgroundServices/CampaignManagers/ExportHousesDataManager_15_7_0_1.cs b/Hcs.WebApp/BackgroundServices/CampaignManagers/ExportHousesDataManager_15_7_0_1.cs new file mode 100644 index 0000000..cadba20 --- /dev/null +++ b/Hcs.WebApp/BackgroundServices/CampaignManagers/ExportHousesDataManager_15_7_0_1.cs @@ -0,0 +1,18 @@ +using Hcs.WebApp.Data.Hcs; + +namespace Hcs.WebApp.BackgroundServices.CampaignManagers +{ + public class ExportHousesDataManager_15_7_0_1( + IServiceScopeFactory scopeFactory, + OperationExecutionState operationExecutionState, + ResultWaitState resultWaitState, + Campaign campaign) : ManagerBase(scopeFactory, operationExecutionState, resultWaitState, campaign) + { + protected override int StepCount => throw new NotImplementedException(); + + public override Task ProcessAsync() + { + throw new NotImplementedException(); + } + } +} diff --git a/Hcs.WebApp/BackgroundServices/CampaignManagers/ManagerFactory.cs b/Hcs.WebApp/BackgroundServices/CampaignManagers/ManagerFactory.cs index 24e1fc0..de202bd 100644 --- a/Hcs.WebApp/BackgroundServices/CampaignManagers/ManagerFactory.cs +++ b/Hcs.WebApp/BackgroundServices/CampaignManagers/ManagerFactory.cs @@ -8,14 +8,13 @@ namespace Hcs.WebApp.BackgroundServices.CampaignManagers protected readonly OperationExecutionState operationExecutionState = operationExecutionState; protected readonly ResultWaitState resultWaitState = resultWaitState; - public IManager? CreateManager(Campaign campaign) + public IManager CreateManager(Campaign campaign) { return campaign.Type switch { Campaign.CampaignType.ExportPrivateRegistryElements_15_7_0_1 => new ExportPrivateRegistryElementsManager_15_7_0_1(serviceScopeFactory, operationExecutionState, resultWaitState, campaign), Campaign.CampaignType.ExportCommonRegistryElements_15_7_0_1 => new ExportCommonRegistryElementsManager_15_7_0_1(serviceScopeFactory, operationExecutionState, resultWaitState, campaign), - - _ => null, + Campaign.CampaignType.ExportHousesData_15_7_0_1 => new ExportHousesDataManager_15_7_0_1(serviceScopeFactory, operationExecutionState, resultWaitState, campaign) }; } } diff --git a/Hcs.WebApp/BackgroundServices/OperationExecutors/ExecutorFactory.cs b/Hcs.WebApp/BackgroundServices/OperationExecutors/ExecutorFactory.cs index d5516da..0dd18f3 100644 --- a/Hcs.WebApp/BackgroundServices/OperationExecutors/ExecutorFactory.cs +++ b/Hcs.WebApp/BackgroundServices/OperationExecutors/ExecutorFactory.cs @@ -12,9 +12,7 @@ namespace Hcs.WebApp.BackgroundServices.OperationExecutors return operation.Type switch { Operation.OperationType.Nsi_ExportNsiItem_15_7_0_1 => new ExportDataProviderNsiItemExecutor_15_7_0_1(client, scope, operation), - Operation.OperationType.NsiCommon_ExportNsiItem_15_7_0_1 => new ExportNsiItemExecutor_15_7_0_1(client, scope, operation), - - _ => throw new NotImplementedException($"Не удалось создать выполнителя операции типа {operation.Type}"), + Operation.OperationType.NsiCommon_ExportNsiItem_15_7_0_1 => new ExportNsiItemExecutor_15_7_0_1(client, scope, operation) }; } } diff --git a/Hcs.WebApp/BackgroundServices/ResultGetters/ResultGetterFactory.cs b/Hcs.WebApp/BackgroundServices/ResultGetters/ResultGetterFactory.cs index 5e1ba23..4450424 100644 --- a/Hcs.WebApp/BackgroundServices/ResultGetters/ResultGetterFactory.cs +++ b/Hcs.WebApp/BackgroundServices/ResultGetters/ResultGetterFactory.cs @@ -12,9 +12,7 @@ namespace Hcs.WebApp.BackgroundServices.ResultGetters return operation.Type switch { Operation.OperationType.Nsi_ExportNsiItem_15_7_0_1 => new ExportDataProviderNsiItemGetter_15_7_0_1(client, scope, operation), - Operation.OperationType.NsiCommon_ExportNsiItem_15_7_0_1 => new ExportNsiItemGetter_15_7_0_1(client, scope, operation), - - _ => throw new NotImplementedException($"Не удалось создать получателя результата операции типа {operation.Type}"), + Operation.OperationType.NsiCommon_ExportNsiItem_15_7_0_1 => new ExportNsiItemGetter_15_7_0_1(client, scope, operation) }; } }