Add nsi list export

This commit is contained in:
2025-09-16 16:50:35 +09:00
parent 052cf0d34c
commit f53aa99874
5 changed files with 56 additions and 0 deletions

View File

@ -28,5 +28,24 @@ namespace Hcs.Client.Api
return null;
}
}
/// <summary>
/// Возвращает перечень общесистемных справочников с указанием даты последнего изменения каждого из них
/// </summary>
/// <param name="listGroup">Группа справочников, где NSI - общесистемный, а NSIRAO - ОЖФ</param>
/// <param name="token">Токен отмены</param>
/// <returns>Перечень общесистемных справочников</returns>
public async Task<NsiListType> ExportNsiListAsync(ListGroup listGroup, CancellationToken token = default)
{
try
{
var request = new ExportNsiListRequest(client);
return await request.ExecuteAsync(listGroup, token);
}
catch (NoResultsRemoteException)
{
return null;
}
}
}
}

View File

@ -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<NsiListType> 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;
}
}
}

View File

@ -124,6 +124,7 @@
<Compile Include="Client\Api\Request\HouseManagement\ImportSupplyResourceContractDataRequest.cs" />
<Compile Include="Client\Api\Request\HouseManagement\ImportSupplyResourceContractProjectRequest.cs" />
<Compile Include="Client\Api\Request\NsiCommon\ExportNsiItemRequest.cs" />
<Compile Include="Client\Api\Request\NsiCommon\ExportNsiListRequest.cs" />
<Compile Include="Client\Api\Request\NsiCommon\NsiCommonRequestBase.cs" />
<Compile Include="Client\Api\Request\Nsi\NsiRequestBase.cs" />
<Compile Include="Client\Api\Request\OrgRegistryCommon\ExportDataProviderRequest.cs" />

View File

@ -76,6 +76,7 @@ namespace Hcs.TestApp
//nsiCommonScenario.ExportNsiItem2();
//nsiCommonScenario.ExportNsiItem16();
//nsiCommonScenario.ExportNsiItem276();
//nsiCommonScenario.ExportNsiList();
//orgRegistryCommonScenario.ExportDataProvider();
//orgRegistryCommonScenario.ExportOrgRegistry();

View File

@ -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"));
}
}
}