using Hcs.Broker.Api.Payload.Bills;
using Hcs.Broker.Api.Request.Bills;
using Hcs.Service.Async.Bills;
namespace Hcs.Broker.Api
{
// http://open-gkh.ru/BillsServiceAsync/
public class BillsApi(Client client) : ApiBase(client)
{
///
/// Экспорт платежных документов
///
/// Идентификатор платежного документа
/// Токен отмены
/// Платежные документы
public async Task> ExportPaymentDocumentDataByPaymentDocumentIDAsync(string paymentDocumentID, CancellationToken token = default)
{
var request = new ExportPaymentDocumentDataRequest(client);
return await request.ExecuteByPaymentDocumentIDAsync(paymentDocumentID, token);
}
///
/// Экспорт платежных документов
///
/// Год
/// Месяц
/// Глобальный уникальный идентификатор дома по ФИАС
/// Номер лицевого счета/иной идентификатор плательщика
/// Токен отмены
/// Платежные документы
public async Task> ExportPaymentDocumentDataByAccountNumberAsync(short year, int month, string fiasHouseGuid, string accountNumber, CancellationToken token = default)
{
var request = new ExportPaymentDocumentDataRequest(client);
return await request.ExecuteByAccountNumberAsync(year, month, fiasHouseGuid, accountNumber, token);
}
///
/// Экспорт платежных документов
///
/// Год
/// Месяц
/// Глобальный уникальный идентификатор дома по ФИАС
/// Номер платежного документа, по которому внесена плата,
/// присвоенный такому документу исполнителем в целях осуществления расчетов по внесению платы
/// Токен отмены
/// Платежные документы
public async Task> ExportPaymentDocumentDataByPaymentDocumentNumberAsync(short year, int month, string fiasHouseGuid, string paymentDocumentNumber, CancellationToken token = default)
{
var request = new ExportPaymentDocumentDataRequest(client);
return await request.ExecuteByPaymentDocumentNumberAsync(year, month, fiasHouseGuid, paymentDocumentNumber, token);
}
///
/// Импорт сведений о платежных документах
///
/// Пейлоад сведений о платежных документах
/// Токен отмены
/// true, если операция выполнена успешно, иначе - false
public async Task ImportPaymentDocumentDataAsync(ImportPaymentDocumentDataPayload payload, CancellationToken token = default)
{
var request = new ImportPaymentDocumentDataRequest(client);
return await request.ExecuteAsync(payload, token);
}
}
}