diff --git a/Hcs.Client/Client/Api/BillsApi.cs b/Hcs.Client/Client/Api/BillsApi.cs index 42ed3a6..3f8d536 100644 --- a/Hcs.Client/Client/Api/BillsApi.cs +++ b/Hcs.Client/Client/Api/BillsApi.cs @@ -16,10 +16,10 @@ namespace Hcs.Client.Api /// Идентификатор платежного документа /// Токен отмены /// Платежные документы - public async Task> ExportPaymentDocumentDataAsync(string paymentDocumentID, CancellationToken token = default) + public async Task> ExportPaymentDocumentDataByPaymentDocumentIDAsync(string paymentDocumentID, CancellationToken token = default) { var request = new ExportPaymentDocumentDataRequest(client); - return await request.ExecuteAsync(paymentDocumentID, token); + return await request.ExecuteByPaymentDocumentIDAsync(paymentDocumentID, token); } /// @@ -28,13 +28,29 @@ namespace Hcs.Client.Api /// Год /// Месяц /// Глобальный уникальный идентификатор дома по ФИАС - /// Идентификатор ЛС в ГИС ЖКХ + /// Номер лицевого счета/иной идентификатор плательщика /// Токен отмены /// Платежные документы - public async Task> ExportPaymentDocumentDataAsync(short year, int month, string fiasHouseGuid, string accountGUID, CancellationToken token = default) + public async Task> ExportPaymentDocumentDataByAccountNumberAsync(short year, int month, string fiasHouseGuid, string accountNumber, CancellationToken token = default) { var request = new ExportPaymentDocumentDataRequest(client); - return await request.ExecuteAsync(year, month, fiasHouseGuid, accountGUID, token); + 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); } /// diff --git a/Hcs.Client/Client/Api/Request/Bills/ExportPaymentDocumentDataRequest.cs b/Hcs.Client/Client/Api/Request/Bills/ExportPaymentDocumentDataRequest.cs index 8b9bdd8..1170846 100644 --- a/Hcs.Client/Client/Api/Request/Bills/ExportPaymentDocumentDataRequest.cs +++ b/Hcs.Client/Client/Api/Request/Bills/ExportPaymentDocumentDataRequest.cs @@ -11,7 +11,7 @@ namespace Hcs.Client.Api.Request.Bills { protected override bool CanBeRestarted => true; - internal async Task> ExecuteAsync(string paymentDocumentID, CancellationToken token) + internal async Task> ExecuteByPaymentDocumentIDAsync(string paymentDocumentID, CancellationToken token) { var request = new exportPaymentDocumentRequest() { @@ -30,14 +30,33 @@ namespace Hcs.Client.Api.Request.Bills return result.Items.OfType(); } - internal async Task> ExecuteAsync(short year, int month, string fiasHouseGuid, string accountGUID, CancellationToken token) + internal async Task> ExecuteByAccountNumberAsync(short year, int month, string fiasHouseGuid, string accountNumber, CancellationToken token) { var request = new exportPaymentDocumentRequest() { Id = Constants.SIGNED_XML_ELEMENT_ID, version = "13.1.0.1", - Items = [year, month, fiasHouseGuid, accountGUID], - ItemsElementName = [ItemsChoiceType7.Year, ItemsChoiceType7.Month, ItemsChoiceType7.FIASHouseGuid, ItemsChoiceType7.AccountGUID] + Items = [year, month, fiasHouseGuid, accountNumber], + ItemsElementName = [ItemsChoiceType7.Year, ItemsChoiceType7.Month, ItemsChoiceType7.FIASHouseGuid, ItemsChoiceType7.AccountNumber] + }; + + var result = await SendAndWaitResultAsync(request, async asyncClient => + { + var response = await asyncClient.exportPaymentDocumentDataAsync(CreateRequestHeader(), request); + return response.AckRequest.Ack; + }, token); + + return result.Items.OfType(); + } + + internal async Task> ExecuteByPaymentDocumentNumberAsync(short year, int month, string fiasHouseGuid, string paymentDocumentNumber, CancellationToken token) + { + var request = new exportPaymentDocumentRequest() + { + Id = Constants.SIGNED_XML_ELEMENT_ID, + version = "13.1.0.1", + Items = [year, month, fiasHouseGuid, paymentDocumentNumber], + ItemsElementName = [ItemsChoiceType7.Year, ItemsChoiceType7.Month, ItemsChoiceType7.FIASHouseGuid, ItemsChoiceType7.PaymentDocumentNumber] }; var result = await SendAndWaitResultAsync(request, async asyncClient => diff --git a/Hcs.TestApp/TestApp/Program.cs b/Hcs.TestApp/TestApp/Program.cs index 8c8ed8a..591636b 100644 --- a/Hcs.TestApp/TestApp/Program.cs +++ b/Hcs.TestApp/TestApp/Program.cs @@ -45,8 +45,9 @@ namespace Hcs.TestApp var paymentsScenario = new PaymentsScenario(client); try { - //billsScenario.ExportPaymentDocumentDataById(); - //billsScenario.ExportPaymentDocumentData(); + //billsScenario.ExportPaymentDocumentDataByPaymentDocumentID(); + //billsScenario.ExportPaymentDocumentDataByAccountNumber(); + //billsScenario.ExportPaymentDocumentDataByPaymentDocumentNumber(); //billsScenario.ImportPaymentDocumentData(); //deviceMeteringScenario.ExportMeteringDeviceHistory(); diff --git a/Hcs.TestApp/TestApp/Scenario/BillsScenario.cs b/Hcs.TestApp/TestApp/Scenario/BillsScenario.cs index e19dcf9..d6bbecb 100644 --- a/Hcs.TestApp/TestApp/Scenario/BillsScenario.cs +++ b/Hcs.TestApp/TestApp/Scenario/BillsScenario.cs @@ -11,15 +11,21 @@ namespace Hcs.TestApp.Scenario { private readonly UniClient client = client; - internal void ExportPaymentDocumentDataById() + internal void ExportPaymentDocumentDataByPaymentDocumentID() { - var result = client.Bills.ExportPaymentDocumentDataAsync("00АА095186-02-5081").Result; + var result = client.Bills.ExportPaymentDocumentDataByPaymentDocumentIDAsync("00АА095186-02-5081").Result; Console.WriteLine("Scenario execution " + (result != null && result.Count() > 0 ? "succeeded" : "failed")); } - internal void ExportPaymentDocumentData() + internal void ExportPaymentDocumentDataByAccountNumber() { - var result = client.Bills.ExportPaymentDocumentDataAsync(2025, 8, "c48e5025-f77a-494f-8aab-f773da623a25", "019917a8-6eb6-74cc-99b7-58350127ac50").Result; + var result = client.Bills.ExportPaymentDocumentDataByAccountNumberAsync(2025, 8, "c48e5025-f77a-494f-8aab-f773da623a25", "458938932489324").Result; + Console.WriteLine("Scenario execution " + (result != null && result.Count() > 0 ? "succeeded" : "failed")); + } + + internal void ExportPaymentDocumentDataByPaymentDocumentNumber() + { + var result = client.Bills.ExportPaymentDocumentDataByPaymentDocumentNumberAsync(2025, 8, "c48e5025-f77a-494f-8aab-f773da623a25", "23900701600162023").Result; Console.WriteLine("Scenario execution " + (result != null && result.Count() > 0 ? "succeeded" : "failed")); }