using Hcs.Broker.Internal; using Hcs.Service.Async.Nsi; namespace Hcs.Broker.Api.Request.Nsi { internal class ExportDataProviderNsiItemRequest(Client client) : NsiRequestBase(client) { internal async Task> ExecuteAsync(exportDataProviderNsiItemRequestRegistryNumber registryNumber, CancellationToken token) { // http://open-gkh.ru/Nsi/exportDataProviderNsiItemRequest.html var request = new exportDataProviderNsiItemRequest { Id = Constants.SIGNED_XML_ELEMENT_ID, version = "10.0.1.2", RegistryNumber = registryNumber }; var result = await SendAndWaitResultAsync(request, async asyncClient => { var response = await asyncClient.exportDataProviderNsiItemAsync(CreateRequestHeader(), request); return response.AckRequest.Ack; }, token); return result.Items.OfType(); } internal async Task SendAsync(exportDataProviderNsiItemRequestRegistryNumber registryNumber, CancellationToken token) { // http://open-gkh.ru/Nsi/exportDataProviderNsiItemRequest.html var request = new exportDataProviderNsiItemRequest { Id = Constants.SIGNED_XML_ELEMENT_ID, version = "10.0.1.2", RegistryNumber = registryNumber }; return await SendAsync(request, async asyncClient => { var response = await asyncClient.exportDataProviderNsiItemAsync(CreateRequestHeader(), request); return response.AckRequest.Ack; }, token); } } }