diff --git a/Hcs.Client/Client/Api/HouseManagementApi.cs b/Hcs.Client/Client/Api/HouseManagementApi.cs
new file mode 100644
index 0000000..1109e02
--- /dev/null
+++ b/Hcs.Client/Client/Api/HouseManagementApi.cs
@@ -0,0 +1,24 @@
+using Hcs.Client.Api.Request.HouseManagement;
+using Hcs.Service.Async.HouseManagement;
+using System;
+using System.Threading;
+using System.Threading.Tasks;
+
+namespace Hcs.Client.Api
+{
+ // http://open-gkh.ru/HouseManagementServiceAsync/
+ public class HouseManagementApi(ClientBase client) : ApiBase(client)
+ {
+ ///
+ /// Возвращает договор ресурсоснабжения по его идентификатору в ГИС ЖКХ
+ ///
+ /// Идентификатор договора ресурсоснабжения в ГИС ЖКХ
+ /// Токен отмены
+ /// Договор ресурсоснабжения
+ public async Task ExportSupplyResourceContractDataAsync(Guid contractRootGuid, CancellationToken token = default)
+ {
+ var request = new ExportSupplyResourceContractDataRequest(client);
+ return await request.ExecuteAsync(contractRootGuid, token);
+ }
+ }
+}
diff --git a/Hcs.Client/Client/Api/NsiApi.cs b/Hcs.Client/Client/Api/NsiApi.cs
index a3332f6..324634c 100644
--- a/Hcs.Client/Client/Api/NsiApi.cs
+++ b/Hcs.Client/Client/Api/NsiApi.cs
@@ -16,7 +16,7 @@ namespace Hcs.Client.Api
/// Реестровый номер справочника
/// Токен отмены
/// Данные справочника
- public async Task> ExportDataProviderNsiItem(exportDataProviderNsiItemRequestRegistryNumber registryNumber, CancellationToken token = default)
+ public async Task> ExportDataProviderNsiItemAsync(exportDataProviderNsiItemRequestRegistryNumber registryNumber, CancellationToken token = default)
{
try
{
diff --git a/Hcs.Client/Client/Api/NsiCommonApi.cs b/Hcs.Client/Client/Api/NsiCommonApi.cs
index 33e541c..317e57a 100644
--- a/Hcs.Client/Client/Api/NsiCommonApi.cs
+++ b/Hcs.Client/Client/Api/NsiCommonApi.cs
@@ -16,7 +16,7 @@ namespace Hcs.Client.Api
/// Группа справочников, где NSI - общесистемный, а NSIRAO - ОЖФ
/// Токен отмены
/// Данные общесистемного справочника
- public async Task ExportNsiItem(int registryNumber, ListGroup listGroup, CancellationToken token = default)
+ public async Task ExportNsiItemAsync(int registryNumber, ListGroup listGroup, CancellationToken token = default)
{
try
{
diff --git a/Hcs.Client/Client/Api/Request/HouseManagement/ExportSupplyResourceContractDataRequest.cs b/Hcs.Client/Client/Api/Request/HouseManagement/ExportSupplyResourceContractDataRequest.cs
new file mode 100644
index 0000000..24eb256
--- /dev/null
+++ b/Hcs.Client/Client/Api/Request/HouseManagement/ExportSupplyResourceContractDataRequest.cs
@@ -0,0 +1,77 @@
+using Hcs.Client.Internal;
+using Hcs.Service.Async.HouseManagement;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading;
+using System.Threading.Tasks;
+
+namespace Hcs.Client.Api.Request.HouseManagement
+{
+ internal class ExportSupplyResourceContractDataRequest(ClientBase client) : HouseManagementRequestBase(client)
+ {
+ protected override bool EnableMinimalResponseWaitDelay => false;
+
+ internal async Task ExecuteAsync(Guid contractRootGuid, CancellationToken token)
+ {
+ exportSupplyResourceContractResultType result = null;
+
+ void OnResultReceived(exportSupplyResourceContractResultType[] contracts)
+ {
+ result = contracts.Length > 0 ? contracts[0] : null;
+ }
+
+ await QueryBatchAsync(contractRootGuid, null, null, OnResultReceived, token);
+
+ return result;
+ }
+
+ private async Task QueryBatchAsync(
+ Guid? contractRootGuid, string contractNumber, Guid? exportContractRootGuid,
+ Action onResultReceived,
+ CancellationToken token)
+ {
+ var itemsElementName = new List();
+ var items = new List