From 5df0a2ea4304e5c2050a3566d5596df2fb4a2ef2 Mon Sep 17 00:00:00 2001 From: "HOME-LAPTOP\\kshkulev" Date: Fri, 5 Sep 2025 12:04:28 +0900 Subject: [PATCH] Add house export --- Hcs.Client/Client/Api/HouseManagementApi.cs | 11 +++++++ .../HouseManagement/ExportHouseRequest.cs | 33 +++++++++++++++++++ Hcs.Client/Hcs.Client.csproj | 1 + Hcs.TestApp/TestApp/Program.cs | 2 ++ .../Scenario/HouseManagementScenario.cs | 9 ++++- 5 files changed, 55 insertions(+), 1 deletion(-) create mode 100644 Hcs.Client/Client/Api/Request/HouseManagement/ExportHouseRequest.cs diff --git a/Hcs.Client/Client/Api/HouseManagementApi.cs b/Hcs.Client/Client/Api/HouseManagementApi.cs index b5e9cab..e9daacb 100644 --- a/Hcs.Client/Client/Api/HouseManagementApi.cs +++ b/Hcs.Client/Client/Api/HouseManagementApi.cs @@ -11,6 +11,17 @@ namespace Hcs.Client.Api // http://open-gkh.ru/HouseManagementServiceAsync/ public class HouseManagementApi(ClientBase client) : ApiBase(client) { + /// + /// Возвращает информацию о доме + /// + /// Токен отмены + /// Информация о доме + public async Task> ExportHouseAsync(string fiasHouseGuid, CancellationToken token = default) + { + var request = new ExportHouseRequest(client); + return await request.ExecuteAsync(fiasHouseGuid, token); + } + /// /// Возвращает все договора ресурсоснабжения /// diff --git a/Hcs.Client/Client/Api/Request/HouseManagement/ExportHouseRequest.cs b/Hcs.Client/Client/Api/Request/HouseManagement/ExportHouseRequest.cs new file mode 100644 index 0000000..d66803d --- /dev/null +++ b/Hcs.Client/Client/Api/Request/HouseManagement/ExportHouseRequest.cs @@ -0,0 +1,33 @@ +using Hcs.Client.Internal; +using Hcs.Service.Async.HouseManagement; +using System.Collections.Generic; +using System.Linq; +using System.Threading; +using System.Threading.Tasks; + +namespace Hcs.Client.Api.Request.HouseManagement +{ + internal class ExportHouseRequest(ClientBase client) : HouseManagementRequestBase(client) + { + protected override bool EnableMinimalResponseWaitDelay => false; + + internal async Task> ExecuteAsync(string fiasHouseGuid, CancellationToken token) + { + // http://open-gkh.ru/HouseManagement/exportHouseRequest.html + var request = new exportHouseRequest + { + Id = Constants.SIGNED_XML_ELEMENT_ID, + version = "15.6.0.1", + FIASHouseGuid = fiasHouseGuid + }; + + var result = await SendAndWaitResultAsync(request, async asyncClient => + { + var response = await asyncClient.exportHouseDataAsync(CreateRequestHeader(), request); + return response.AckRequest.Ack; + }, token); + + return result.Items.OfType(); + } + } +} diff --git a/Hcs.Client/Hcs.Client.csproj b/Hcs.Client/Hcs.Client.csproj index 3240af0..1d966f4 100644 --- a/Hcs.Client/Hcs.Client.csproj +++ b/Hcs.Client/Hcs.Client.csproj @@ -93,6 +93,7 @@ + diff --git a/Hcs.TestApp/TestApp/Program.cs b/Hcs.TestApp/TestApp/Program.cs index 4cebf08..0c341b9 100644 --- a/Hcs.TestApp/TestApp/Program.cs +++ b/Hcs.TestApp/TestApp/Program.cs @@ -42,6 +42,8 @@ namespace Hcs.TestApp var orgRegistryCommonScenario = new OrgRegistryCommonScenario(client); try { + //houseManagementScenario.ExportHouse(); + //houseManagementScenario.ExportAllSupplyResourceContractData(); //houseManagementScenario.ExportSupplyResourceContractDataByGuid(); //houseManagementScenario.ExportSupplyResourceContractDataByNumber(); diff --git a/Hcs.TestApp/TestApp/Scenario/HouseManagementScenario.cs b/Hcs.TestApp/TestApp/Scenario/HouseManagementScenario.cs index f61560b..0904dda 100644 --- a/Hcs.TestApp/TestApp/Scenario/HouseManagementScenario.cs +++ b/Hcs.TestApp/TestApp/Scenario/HouseManagementScenario.cs @@ -3,6 +3,7 @@ using Hcs.Client.Api.Payload.HouseManagement; using Hcs.Client.Api.Registry; using Hcs.Service.Async.HouseManagement; using System; +using System.Linq; namespace Hcs.TestApp.Scenario { @@ -10,10 +11,16 @@ namespace Hcs.TestApp.Scenario { private readonly UniClient client = client; + internal void ExportHouse() + { + var result = client.HouseManagement.ExportHouseAsync("c48e5025-f77a-494f-8aab-f773da623a25").Result; + Console.WriteLine("Scenario execution " + (result != null && result.Count() > 0 ? "succeeded" : "failed")); + } + internal void ExportAllSupplyResourceContractData() { var result = client.HouseManagement.ExportSupplyResourceContractDataAsync().Result; - Console.WriteLine("Scenario execution " + (result != null ? "succeeded" : "failed")); + Console.WriteLine("Scenario execution " + (result != null && result.Count() > 0 ? "succeeded" : "failed")); } internal void ExportSupplyResourceContractDataByGuid()