From 6c759ebe2086b2d761cba29afde42ecdc041668f Mon Sep 17 00:00:00 2001 From: "HOME-LAPTOP\\kshkulev" Date: Thu, 2 Oct 2025 18:30:36 +0900 Subject: [PATCH] Enhance export test --- .../MessageCapturer/FileMessageCapturer.cs | 8 +++ Hcs.WebApp/Components/Pages/Test/Export.razor | 60 +++++++++++++++++-- 2 files changed, 63 insertions(+), 5 deletions(-) diff --git a/Hcs.Broker/MessageCapturer/FileMessageCapturer.cs b/Hcs.Broker/MessageCapturer/FileMessageCapturer.cs index 2d73192..830000f 100644 --- a/Hcs.Broker/MessageCapturer/FileMessageCapturer.cs +++ b/Hcs.Broker/MessageCapturer/FileMessageCapturer.cs @@ -12,6 +12,10 @@ namespace Hcs.Broker.MessageCapturer private readonly string directory = directory; private readonly ILogger logger = logger; + public string LastFileName { get; private set; } + + public event Action OnFileWritten; + public void CaptureMessage(bool sent, string messageBody) { var index = 0; @@ -43,6 +47,10 @@ namespace Hcs.Broker.MessageCapturer logger?.WriteLine($"Capturing message to file {fileName}..."); File.WriteAllText(fileName, messageBody, Encoding.UTF8); + + LastFileName = fileName; + + OnFileWritten?.Invoke(fileName); } } } diff --git a/Hcs.WebApp/Components/Pages/Test/Export.razor b/Hcs.WebApp/Components/Pages/Test/Export.razor index acc49c0..00c383b 100644 --- a/Hcs.WebApp/Components/Pages/Test/Export.razor +++ b/Hcs.WebApp/Components/Pages/Test/Export.razor @@ -6,6 +6,8 @@ @using Hcs.Service.Async.Nsi @using Hcs.WebApp.Components.Shared +@inject NavigationManager NavigationManager + Тестирование экспорта @@ -16,7 +18,7 @@ Сервис nsi - OnNsiExportItem1Click()) Text="Экспорт НСИ 1" ButtonStyle="ButtonStyle.Primary" /> + OnNsiExportItem1Click()) Disabled=@interactable Text="Экспорт НСИ 1" ButtonStyle="ButtonStyle.Primary" /> @@ -27,8 +29,10 @@ + + @@ -40,13 +44,22 @@ @code { EventConsole console = default!; - ActionLogger logger = new ActionLogger(); + bool interactable = true; + string messageBody; + string responseBody; + Client client; + ActionLogger logger = new ActionLogger(); + FileMessageCapturer messageCapturer; + bool catchMessageBody; public Export() { logger.OnWriteLine += OnLog; + messageCapturer = new FileMessageCapturer("test/export", logger); + messageCapturer.OnFileWritten += OnFileWritten; + client = new Client { OrgPPAGUID = "ccd7fa02-a2bf-428a-984b-faef69ae0eb2", @@ -55,7 +68,7 @@ IsPPAK = false, Role = OrganizationRole.RSO, Logger = logger, - MessageCapturer = new FileMessageCapturer("test/export", logger) + MessageCapturer = messageCapturer }; client.SetSigningCertificate("0636D2330032B3C38A4A26D765C787C248"); @@ -66,8 +79,45 @@ console.Log(log); } - void OnNsiExportItem1Click() + void OnFileWritten(string fileName) { - client.Nsi.ExportDataProviderNsiItemAsync(exportDataProviderNsiItemRequestRegistryNumber.Item1); + if (catchMessageBody) + { + catchMessageBody = false; + + messageBody = File.ReadAllText(fileName); + } + } + + async Task OnNsiExportItem1Click() + { + try + { + StartExport(); + + await client.Nsi.ExportDataProviderNsiItemAsync(exportDataProviderNsiItemRequestRegistryNumber.Item1); + + EndExport(); + } + catch + { + NavigationManager.NavigateTo("/error"); + } + } + + void StartExport() + { + interactable = false; + messageBody = string.Empty; + responseBody = string.Empty; + catchMessageBody = true; + + console.Clear(); + } + + void EndExport() + { + interactable = true; + responseBody = File.ReadAllText(messageCapturer.LastFileName); } }