Copy
using OneKhusa.SDK;
using OneKhusa.SDK.Models.Transactions.BatchDisbursements;
//code omitted for brevity
OneKhusaResponse<DownloadBatchErrorsResponse> response = await client
.Transactions
.BatchDisbursements
.DownloadBatchErrorsAsync(new DownloadBatchErrorsRequest
{
MerchantAccountNumber = 12345678,
BatchNumber = 123456
});
if (response is { IsSuccess: true, Data: not null })
{
Console.WriteLine($"""
DocumentName: {response.Data.DocumentName};
ContentType: {response.Data.ContentType};
DateCreated: {response.Data.DateCreated}
""");
//DEMO: create the downloaded file to disk
var fileBytes = Convert.FromBase64String(response.Data.DocumentBase64);
using (MemoryStream memoryStream = new MemoryStream(fileBytes))
{
var fileName = $"batch_errors_{DateTime.Now:ddMMyyHHmmss}.{response.Data.ContentType.ToLower()}";
using (FileStream fileStream = new FileStream(@$"file-directory-here\{fileName}", FileMode.Create))
{
memoryStream.WriteTo(fileStream);
}
}
Console.ReadLine();
return;
}
//it means the error has occurred: RFC7807 compliant error object
Console.WriteLine($"""
Type: {response.Error?.Type};
Title: {response.Error?.Title};
Detail: {response.Error?.Detail};
ErrorCode: {response.Error?.ErrorCode};
Status: {response.Error?.Status};
Instance: {response.Error?.Instance};
Errors: {string.Join(";", response.Error?.Errors ?? [])}
""");