Add new Hcs.Broker to communicate with ГИС ЖКХ via CryptoPro LibCore

This commit is contained in:
2025-09-28 15:45:15 +09:00
parent 904988780a
commit 2b49320014
171 changed files with 185618 additions and 0 deletions

View File

@ -0,0 +1,49 @@
using Hcs.Broker.Api.Request.Exception;
using Hcs.Broker.Api.Request.NsiCommon;
using Hcs.Service.Async.NsiCommon;
namespace Hcs.Broker.Api
{
// http://open-gkh.ru/NsiCommonService/
public class NsiCommonApi(Client client) : ApiBase(client)
{
/// <summary>
/// Возвращает данные общесистемного справочника
/// </summary>
/// <param name="registryNumber">Реестровый номер справочника</param>
/// <param name="listGroup">Группа справочников, где NSI - общесистемный, а NSIRAO - ОЖФ</param>
/// <param name="token">Токен отмены</param>
/// <returns>Данные общесистемного справочника</returns>
public async Task<NsiItemType> ExportNsiItemAsync(int registryNumber, ListGroup listGroup, CancellationToken token = default)
{
try
{
var request = new ExportNsiItemRequest(client);
return await request.ExecuteAsync(registryNumber, listGroup, token);
}
catch (NoResultsRemoteException)
{
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;
}
}
}
}