Add data provider nsi item result wait
This commit is contained in:
@ -1,4 +1,5 @@
|
||||
using Hcs.Service.Async.Nsi;
|
||||
using Hcs.Broker.Api.Request;
|
||||
using Hcs.Service.Async.Nsi;
|
||||
|
||||
namespace Hcs.Broker.Api
|
||||
{
|
||||
@ -20,5 +21,12 @@ namespace Hcs.Broker.Api
|
||||
/// <param name="token">Токен отмены</param>
|
||||
/// <returns>Идентификатор сообщения операции экспорта</returns>
|
||||
Task<string> RequestExportDataProviderNsiItemAsync(exportDataProviderNsiItemRequestRegistryNumber registryNumber, CancellationToken token = default);
|
||||
|
||||
/// <summary>
|
||||
/// Возвращает результат экспорта данных справочника поставщика информации
|
||||
/// </summary>
|
||||
/// <param name="messageGuid">Идентификатор сообщения операции экспорта</param>
|
||||
/// <returns>Результат запроса</returns>
|
||||
Task<RequestSingleResult<NsiItemType>> GetExportDataProviderNsiItemResultAsync(string messageGuid);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
using Hcs.Broker.Api.Request.Exception;
|
||||
using Hcs.Broker.Api.Request;
|
||||
using Hcs.Broker.Api.Request.Exception;
|
||||
using Hcs.Broker.Api.Request.Nsi;
|
||||
using Hcs.Service.Async.Nsi;
|
||||
|
||||
@ -27,5 +28,12 @@ namespace Hcs.Broker.Api
|
||||
var request = new ExportDataProviderNsiItemRequest(client);
|
||||
return await request.SendAsync(registryNumber, token);
|
||||
}
|
||||
|
||||
/// <inheritdoc cref="INsiApi"/>
|
||||
public async Task<RequestSingleResult<NsiItemType>> GetExportDataProviderNsiItemResultAsync(string messageGuid)
|
||||
{
|
||||
var request = new ExportDataProviderNsiItemRequest(client);
|
||||
return await request.GetResultAsync(messageGuid);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
using Hcs.Broker.Internal;
|
||||
using Hcs.Broker.Api.Request.Adapter;
|
||||
using Hcs.Broker.Internal;
|
||||
using Hcs.Service.Async.Nsi;
|
||||
|
||||
namespace Hcs.Broker.Api.Request.Nsi
|
||||
@ -40,5 +41,25 @@ namespace Hcs.Broker.Api.Request.Nsi
|
||||
return response.AckRequest.Ack;
|
||||
}, token);
|
||||
}
|
||||
|
||||
internal async Task<RequestSingleResult<NsiItemType>> GetResultAsync(string messageGuid)
|
||||
{
|
||||
var result = await ExecuteGetResultAsync(messageGuid);
|
||||
if (result == null)
|
||||
{
|
||||
return RequestSingleResult<NsiItemType>.CreateNotReady();
|
||||
}
|
||||
|
||||
var item = result.Items.FirstOrDefault();
|
||||
if (item is NsiItemType nsiItem)
|
||||
{
|
||||
return RequestSingleResult<NsiItemType>.CreateSuccessful(nsiItem);
|
||||
}
|
||||
else if (item is IErrorMessage errorMessage)
|
||||
{
|
||||
return RequestSingleResult<NsiItemType>.CreateFailed(errorMessage);
|
||||
}
|
||||
return RequestSingleResult<NsiItemType>.CreateFailed(null);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user