diff --git a/TransactionProcessor.DataTransferObjects/DataTransferObject.cs b/TransactionProcessor.DataTransferObjects/DataTransferObject.cs
index e2abdf67..4a49e602 100644
--- a/TransactionProcessor.DataTransferObjects/DataTransferObject.cs
+++ b/TransactionProcessor.DataTransferObjects/DataTransferObject.cs
@@ -31,6 +31,15 @@ public class DataTransferObject
[JsonProperty("merchant_id")]
public Guid MerchantId { get; set; }
+ ///
+ /// Gets or sets the transaction date time.
+ ///
+ ///
+ /// The transaction date time.
+ ///
+ [JsonProperty("transaction_date_time")]
+ public DateTime TransactionDateTime { get; set; }
+
#endregion
}
}
\ No newline at end of file
diff --git a/TransactionProcessor.DataTransferObjects/LogonTransactionRequest.cs b/TransactionProcessor.DataTransferObjects/LogonTransactionRequest.cs
index 69122c26..34aa95fa 100644
--- a/TransactionProcessor.DataTransferObjects/LogonTransactionRequest.cs
+++ b/TransactionProcessor.DataTransferObjects/LogonTransactionRequest.cs
@@ -20,16 +20,7 @@ public class LogonTransactionRequest : DataTransferObject
///
[JsonProperty("device_identifier")]
public String DeviceIdentifier { get; set; }
-
- ///
- /// Gets or sets the transaction date time.
- ///
- ///
- /// The transaction date time.
- ///
- [JsonProperty("transaction_date_time")]
- public DateTime TransactionDateTime { get; set; }
-
+
///
/// Gets or sets the transaction number.
///
diff --git a/TransactionProcessor.DataTransferObjects/ReconciliationRequest.cs b/TransactionProcessor.DataTransferObjects/ReconciliationRequest.cs
index 4fcaec85..6b0b2a5c 100644
--- a/TransactionProcessor.DataTransferObjects/ReconciliationRequest.cs
+++ b/TransactionProcessor.DataTransferObjects/ReconciliationRequest.cs
@@ -41,15 +41,6 @@ public class ReconciliationRequest : DataTransferObject
[JsonProperty("transaction_count")]
public Int32 TransactionCount { get; set; }
- ///
- /// Gets or sets the transaction date time.
- ///
- ///
- /// The transaction date time.
- ///
- [JsonProperty("transaction_date_time")]
- public DateTime TransactionDateTime { get; set; }
-
///
/// Gets or sets the transaction value.
///
diff --git a/TransactionProcessor.DataTransferObjects/SaleTransactionRequest.cs b/TransactionProcessor.DataTransferObjects/SaleTransactionRequest.cs
index 87b1cbd2..920282a4 100644
--- a/TransactionProcessor.DataTransferObjects/SaleTransactionRequest.cs
+++ b/TransactionProcessor.DataTransferObjects/SaleTransactionRequest.cs
@@ -27,10 +27,7 @@ public class SaleTransactionRequest : DataTransferObject
[JsonProperty("product_id")]
public Guid ProductId { get; set; }
-
- [JsonProperty("transaction_date_time")]
- public DateTime TransactionDateTime { get; set; }
-
+
[JsonProperty("transaction_number")]
public String TransactionNumber { get; set; }
diff --git a/TransactionProcessor/Controllers/TransactionController.cs b/TransactionProcessor/Controllers/TransactionController.cs
index f03e7f5e..9fbf3d56 100644
--- a/TransactionProcessor/Controllers/TransactionController.cs
+++ b/TransactionProcessor/Controllers/TransactionController.cs
@@ -4,15 +4,11 @@
namespace TransactionProcessor.Controllers
{
- using System;
- using System.Collections.Generic;
- using System.Diagnostics.CodeAnalysis;
- using System.Threading;
- using System.Threading.Tasks;
using BusinessLogic.Requests;
using Common.Examples;
using DataTransferObjects;
using Factories;
+ using Humanizer;
using MediatR;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
@@ -21,6 +17,11 @@ namespace TransactionProcessor.Controllers
using Shared.General;
using Swashbuckle.AspNetCore.Annotations;
using Swashbuckle.AspNetCore.Filters;
+ using System;
+ using System.Collections.Generic;
+ using System.Diagnostics.CodeAnalysis;
+ using System.Threading;
+ using System.Threading.Tasks;
///
///
@@ -81,8 +82,13 @@ public async Task PerformTransaction([FromBody] SerialisedMessage
{
TypeNameHandling = TypeNameHandling.Auto
});
+
dto.MerchantId = merchantId;
dto.EstateId = estateId;
+ if (dto.TransactionDateTime.Kind == DateTimeKind.Utc)
+ {
+ dto.TransactionDateTime = new DateTime(dto.TransactionDateTime.Ticks, DateTimeKind.Unspecified);
+ }
Result transactionResult = dto switch {
LogonTransactionRequest ltr => await this.ProcessSpecificMessage(ltr, cancellationToken),
@@ -124,7 +130,7 @@ private async Task> ProcessSpecificMessage(LogonTransa
CancellationToken cancellationToken)
{
Guid transactionId = Guid.NewGuid();
-
+
TransactionCommands.ProcessLogonTransactionCommand command = new(transactionId,
logonTransactionRequest.EstateId,
logonTransactionRequest.MerchantId,