forked from Adyen/adyen-dotnet-api-library
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathPosPaymentCloudApi.cs
94 lines (88 loc) · 3.81 KB
/
PosPaymentCloudApi.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
using System.Threading.Tasks;
using Adyen.ApiSerialization;
using Adyen.Model.Nexo;
using Adyen.Service.Resource.Terminal;
namespace Adyen.Service
{
public class PosPaymentCloudApi : AbstractService, IPosPaymentCloudApi
{
private readonly TerminalApi _terminalApiAsync;
private readonly TerminalApi _terminalApiSync;
private readonly SaleToPoiMessageSerializer _saleToPoiMessageSerializer;
public PosPaymentCloudApi(Client client)
: base(client)
{
_saleToPoiMessageSerializer = new SaleToPoiMessageSerializer();
_terminalApiAsync = new TerminalApi(this, true);
_terminalApiSync = new TerminalApi(this, false);
}
/// <summary>
/// CloudApi asynchronous call
/// </summary>
/// <param name="saleToPoiRequest"></param>
/// <returns></returns>
public SaleToPOIResponse TerminalApiCloudAsync(SaleToPOIMessage saleToPoiRequest)
{
var serializedMessage = _saleToPoiMessageSerializer.Serialize(saleToPoiRequest);
Client.LogLine("Request: \n" + serializedMessage);
var response = _terminalApiAsync.Request(serializedMessage);
Client.LogLine("Response: \n" + response);
if (string.IsNullOrEmpty(response) || string.Equals("ok", response))
{
return null;
}
return _saleToPoiMessageSerializer.Deserialize(response);
}
/// <summary>
/// CloudApi synchronous call
/// </summary>
/// <param name="saleToPoiRequest"></param>
/// <returns></returns>
public SaleToPOIResponse TerminalApiCloudSync(SaleToPOIMessage saleToPoiRequest)
{
var serializedMessage = _saleToPoiMessageSerializer.Serialize(saleToPoiRequest);
Client.LogLine("Request: \n"+ serializedMessage);
var response = _terminalApiSync.Request(serializedMessage);
Client.LogLine("Response: \n"+ response);
if (string.IsNullOrEmpty(response) || string.Equals("ok", response))
{
return null;
}
return _saleToPoiMessageSerializer.Deserialize(response);
}
/// <summary>
/// Task async CloudApi asynchronous call
/// </summary>
/// <param name="saleToPoiRequest"></param>
/// <returns></returns>
public async Task<SaleToPOIResponse> TerminalApiCloudAsynchronousAsync(SaleToPOIMessage saleToPoiRequest)
{
var serializedMessage = _saleToPoiMessageSerializer.Serialize(saleToPoiRequest);
Client.LogLine("Request: \n" + serializedMessage);
var response = await _terminalApiAsync.RequestAsync(serializedMessage);
Client.LogLine("Response: \n" + response);
if (string.IsNullOrEmpty(response) || string.Equals("ok", response))
{
return null;
}
return _saleToPoiMessageSerializer.Deserialize(response);
}
/// <summary>
/// Task async CloudApi synchronous call
/// </summary>
/// <param name="saleToPoiRequest"></param>
/// <returns></returns>
public async Task<SaleToPOIResponse> TerminalApiCloudSynchronousAsync(SaleToPOIMessage saleToPoiRequest)
{
var serializedMessage = _saleToPoiMessageSerializer.Serialize(saleToPoiRequest);
Client.LogLine("Request: \n" + serializedMessage);
var response = await _terminalApiSync.RequestAsync(serializedMessage);
Client.LogLine("Response: \n" + response);
if (string.IsNullOrEmpty(response) || string.Equals("ok", response))
{
return null;
}
return _saleToPoiMessageSerializer.Deserialize(response);
}
}
}