Skip to content

Commit d6c59ba

Browse files
authored
Merge pull request #14 from fiskaltrust/feature/4-add-cbReceiptLines-info
#4 add cbReceiptLines to howto 8 sample + typed object to the lib
2 parents 657cfb0 + ad4a24d commit d6c59ba

3 files changed

Lines changed: 40 additions & 4 deletions

File tree

HOWTO_08_pay_sign_issue_csharp/Program.cs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,14 @@ static async Task Main(string[] args)
8989
.SetCountry("AT") // Austria
9090
.SetReceiptCase(ReceiptCase.PointOfSaleReceipt0x0001);
9191
ReceiptRequest receiptRequest = new ReceiptRequest(receiptReference, receiptCaseBuilder, chargeItems, pResp.ftPayItems);
92+
receiptRequest.ftReceiptCaseData = new FtReceiptCaseData
93+
{
94+
cbReceiptLines = new string[]
95+
{
96+
"This is a test receipt.",
97+
"Thank you for your purchase!"
98+
}
99+
};
92100
(ReceiptResponse? rResp, errorMsg) = await signRunner.Execute<ReceiptResponse>(async () =>
93101
{
94102
return await ftPosAPI.Sign.SignAsync(receiptRequest, signRunner.OperationID);
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
using System.Collections.Generic;
2+
using System.Text.Json.Serialization;
3+
4+
namespace fiskaltrust.DevKit.POSSystemAPI.lib.DTO
5+
{
6+
/// <summary>
7+
/// Optional additional data for the receipt case, passed as <c>ftReceiptCaseData</c> in a <see cref="ReceiptRequest"/>.
8+
/// Known properties are defined as typed fields. Any additional properties can be placed in
9+
/// <see cref="AdditionalProperties"/> and will be serialized as top-level JSON properties.
10+
/// </summary>
11+
public class FtReceiptCaseData
12+
{
13+
/// <summary>
14+
/// Lines of text to be printed on the receipt additionally to the standard receipt content.
15+
/// </summary>
16+
[JsonPropertyName("cbReceiptLines")]
17+
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingDefault)]
18+
public string[]? cbReceiptLines { get; set; }
19+
20+
/// <summary>
21+
/// Additional arbitrary properties that will be serialized as top-level JSON fields
22+
/// alongside the known properties.
23+
/// </summary>
24+
[JsonExtensionData]
25+
public Dictionary<string, object?>? AdditionalProperties { get; set; }
26+
}
27+
}

libPosSystemAPI/DTO/ReceiptRequest.cs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,11 @@ public ReceiptRequest(string cbReceiptReference, ReceiptCaseBuilder buildableRec
7575
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingDefault)]
7676
public string? cbPreviousReceiptReference { get; set; }
7777

78+
[JsonPropertyName("ftReceiptCaseData")]
79+
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingDefault)]
80+
public FtReceiptCaseData? ftReceiptCaseData { get; set; }
81+
82+
7883
public JsonContent ToJsonContent()
7984
{
8085
return JsonContent.Create(this, options: JsonConfiguration.DefaultOptions);
@@ -102,10 +107,6 @@ public JsonContent ToJsonContent()
102107
public Guid? ftPosSystemId { get; set; }
103108
104109
105-
[JsonProperty("ftReceiptCaseData", DefaultValueHandling = DefaultValueHandling.Ignore)]
106-
[JsonPropertyName("ftReceiptCaseData")]
107-
[System.Text.Json.Serialization.JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingDefault)]
108-
public object? ftReceiptCaseData { get; set; }
109110
110111
[JsonProperty("ftQueueID", DefaultValueHandling = DefaultValueHandling.Ignore)]
111112
[JsonPropertyName("ftQueueID")]

0 commit comments

Comments
 (0)