diff --git a/Hcs.Client/Client/Api/NsiCommonApi.cs b/Hcs.Client/Client/Api/NsiCommonApi.cs
index 317e57a..7377417 100644
--- a/Hcs.Client/Client/Api/NsiCommonApi.cs
+++ b/Hcs.Client/Client/Api/NsiCommonApi.cs
@@ -28,5 +28,24 @@ namespace Hcs.Client.Api
return null;
}
}
+
+ ///
+ /// Возвращает перечень общесистемных справочников с указанием даты последнего изменения каждого из них
+ ///
+ /// Группа справочников, где NSI - общесистемный, а NSIRAO - ОЖФ
+ /// Токен отмены
+ /// Перечень общесистемных справочников
+ public async Task ExportNsiListAsync(ListGroup listGroup, CancellationToken token = default)
+ {
+ try
+ {
+ var request = new ExportNsiListRequest(client);
+ return await request.ExecuteAsync(listGroup, token);
+ }
+ catch (NoResultsRemoteException)
+ {
+ return null;
+ }
+ }
}
}
diff --git a/Hcs.Client/Client/Api/Request/NsiCommon/ExportNsiListRequest.cs b/Hcs.Client/Client/Api/Request/NsiCommon/ExportNsiListRequest.cs
new file mode 100644
index 0000000..8c61cfe
--- /dev/null
+++ b/Hcs.Client/Client/Api/Request/NsiCommon/ExportNsiListRequest.cs
@@ -0,0 +1,29 @@
+using Hcs.Client.Internal;
+using Hcs.Service.Async.NsiCommon;
+using System.Threading;
+using System.Threading.Tasks;
+
+namespace Hcs.Client.Api.Request.NsiCommon
+{
+ internal class ExportNsiListRequest(ClientBase client) : NsiCommonRequestBase(client)
+ {
+ internal async Task ExecuteAsync(ListGroup listGroup, CancellationToken token)
+ {
+ // http://open-gkh.ru/NsiCommon/exportNsiListRequest.html
+ var request = new exportNsiListRequest
+ {
+ Id = Constants.SIGNED_XML_ELEMENT_ID,
+ version = "10.0.1.2",
+ ListGroup = listGroup
+ };
+
+ var result = await SendAndWaitResultAsync(request, async asyncClient =>
+ {
+ var response = await asyncClient.exportNsiListAsync(CreateRequestHeader(), request);
+ return response.AckRequest.Ack;
+ }, token);
+
+ return result.Item as NsiListType;
+ }
+ }
+}
diff --git a/Hcs.Client/Hcs.Client.csproj b/Hcs.Client/Hcs.Client.csproj
index 1da3804..ed3510a 100644
--- a/Hcs.Client/Hcs.Client.csproj
+++ b/Hcs.Client/Hcs.Client.csproj
@@ -124,6 +124,7 @@
+
diff --git a/Hcs.TestApp/TestApp/Program.cs b/Hcs.TestApp/TestApp/Program.cs
index 4b36cb7..46571ca 100644
--- a/Hcs.TestApp/TestApp/Program.cs
+++ b/Hcs.TestApp/TestApp/Program.cs
@@ -76,6 +76,7 @@ namespace Hcs.TestApp
//nsiCommonScenario.ExportNsiItem2();
//nsiCommonScenario.ExportNsiItem16();
//nsiCommonScenario.ExportNsiItem276();
+ //nsiCommonScenario.ExportNsiList();
//orgRegistryCommonScenario.ExportDataProvider();
//orgRegistryCommonScenario.ExportOrgRegistry();
diff --git a/Hcs.TestApp/TestApp/Scenario/NsiCommonScenario.cs b/Hcs.TestApp/TestApp/Scenario/NsiCommonScenario.cs
index 7ba6532..7ddff5f 100644
--- a/Hcs.TestApp/TestApp/Scenario/NsiCommonScenario.cs
+++ b/Hcs.TestApp/TestApp/Scenario/NsiCommonScenario.cs
@@ -25,5 +25,11 @@ namespace Hcs.TestApp.Scenario
var result = client.NsiCommon.ExportNsiItemAsync(276, ListGroup.NSI).Result;
Console.WriteLine("Scenario execution " + (result != null ? "succeeded" : "failed"));
}
+
+ internal void ExportNsiList()
+ {
+ var result = client.NsiCommon.ExportNsiListAsync(ListGroup.NSI).Result;
+ Console.WriteLine("Scenario execution " + (result != null ? "succeeded" : "failed"));
+ }
}
}