diff --git a/TransactionProcessorACL.BusinessLogic.Tests/MediatorTests.cs b/TransactionProcessorACL.BusinessLogic.Tests/MediatorTests.cs index e26f372..13f6cb1 100644 --- a/TransactionProcessorACL.BusinessLogic.Tests/MediatorTests.cs +++ b/TransactionProcessorACL.BusinessLogic.Tests/MediatorTests.cs @@ -108,15 +108,12 @@ public async Task> ProcessLogonTransacti String deviceIdentifier, CancellationToken cancellationToken) => Result.Success(new ProcessLogonTransactionResponse()); - public async Task> ProcessSaleTransaction(Guid estateId, - Guid merchantId, + public async Task> ProcessSaleTransaction((Guid estateId, Guid merchantId) merchantData, DateTime transactionDateTime, String transactionNumber, String deviceIdentifier, - Guid operatorId, String customerEmailAddress, - Guid contractId, - Guid productId, + (Guid operatorId, Guid contractId, Guid productId) productData, Dictionary additionalRequestMetadata, CancellationToken cancellationToken) => Result.Success(new ProcessSaleTransactionResponse()); diff --git a/TransactionProcessorACL.BusinessLogic.Tests/RequestHandlerTests.cs b/TransactionProcessorACL.BusinessLogic.Tests/RequestHandlerTests.cs index fe0e541..c1f0e75 100644 --- a/TransactionProcessorACL.BusinessLogic.Tests/RequestHandlerTests.cs +++ b/TransactionProcessorACL.BusinessLogic.Tests/RequestHandlerTests.cs @@ -72,15 +72,12 @@ public async Task ProcessSaleTransactionRequestHandler_Handle_RequestIsHandled() { Mock applicationService = new Mock(); applicationService - .Setup(a => a.ProcessSaleTransaction(It.IsAny(), - It.IsAny(), + .Setup(a => a.ProcessSaleTransaction(It.IsAny<(Guid, Guid)>(), It.IsAny(), It.IsAny(), It.IsAny(), - It.IsAny(), It.IsAny(), - It.IsAny(), - It.IsAny(), + It.IsAny<(Guid, Guid, Guid)>(), It.IsAny>(), It.IsAny())).ReturnsAsync(TestData.ProcessSaleTransactionResponse); diff --git a/TransactionProcessorACL.BusinessLogic.Tests/TransactionProcessorACLApplicationServiceTests.cs b/TransactionProcessorACL.BusinessLogic.Tests/TransactionProcessorACLApplicationServiceTests.cs index bbe03d2..2d65c02 100644 --- a/TransactionProcessorACL.BusinessLogic.Tests/TransactionProcessorACLApplicationServiceTests.cs +++ b/TransactionProcessorACL.BusinessLogic.Tests/TransactionProcessorACLApplicationServiceTests.cs @@ -165,15 +165,12 @@ public async Task TransactionProcessorACLApplicationService_ProcessSaleTransacti .ReturnsAsync(TestData.SerialisedMessageResponseSale); securityServiceClient.Setup(s => s.GetToken(It.IsAny(), It.IsAny(), It.IsAny())).ReturnsAsync(Result.Success(TestData.TokenResponse)); - Result result = await applicationService.ProcessSaleTransaction(TestData.EstateId, - TestData.MerchantId, - TestData.TransactionDateTime, + Result result = await applicationService.ProcessSaleTransaction((TestData.EstateId, TestData.MerchantId), + TestData.TransactionDateTime, TestData.TransactionNumber, TestData.DeviceIdentifier, - TestData.OperatorId, TestData.CustomerEmailAddress, - TestData.ContractId, - TestData.ProductId, + (TestData.OperatorId, TestData.ContractId, TestData.ProductId), TestData.AdditionalRequestMetadata, CancellationToken.None); @@ -193,15 +190,12 @@ public async Task TransactionProcessorACLApplicationService_ProcessSaleTransacti .ReturnsAsync(TestData.SerialisedMessageResponseSale); securityServiceClient.Setup(s => s.GetToken(It.IsAny(), It.IsAny(), It.IsAny())).ReturnsAsync(Result.Success(TestData.TokenResponse)); - Result result = await applicationService.ProcessSaleTransaction(TestData.EstateId, - TestData.MerchantId, + Result result = await applicationService.ProcessSaleTransaction((TestData.EstateId, TestData.MerchantId), TestData.TransactionDateTime, TestData.TransactionNumber, TestData.DeviceIdentifier, - TestData.OperatorId, TestData.CustomerEmailAddress, - TestData.ContractId, - TestData.ProductId, + (TestData.OperatorId, TestData.ContractId, TestData.ProductId), TestData.AdditionalRequestMetadata, CancellationToken.None); @@ -235,15 +229,12 @@ public async Task TransactionProcessorACLApplicationService_ProcessSaleTransacti { securityServiceClient.Setup(s => s.GetToken(It.IsAny(), It.IsAny(), It.IsAny())).ReturnsAsync(Result.Failure()); - Result result = await applicationService.ProcessSaleTransaction(TestData.EstateId, - TestData.MerchantId, + Result result = await applicationService.ProcessSaleTransaction((TestData.EstateId, TestData.MerchantId), TestData.TransactionDateTime, TestData.TransactionNumber, TestData.DeviceIdentifier, - TestData.OperatorId, TestData.CustomerEmailAddress, - TestData.ContractId, - TestData.ProductId, + (TestData.OperatorId, TestData.ContractId, TestData.ProductId), TestData.AdditionalRequestMetadata, CancellationToken.None); @@ -257,15 +248,12 @@ public async Task TransactionProcessorACLApplicationService_ProcessSaleTransacti .ReturnsAsync(Result.Failure()); securityServiceClient.Setup(s => s.GetToken(It.IsAny(), It.IsAny(), It.IsAny())).ReturnsAsync(Result.Success(TestData.TokenResponse)); - Result result = await applicationService.ProcessSaleTransaction(TestData.EstateId, - TestData.MerchantId, + Result result = await applicationService.ProcessSaleTransaction((TestData.EstateId, TestData.MerchantId), TestData.TransactionDateTime, TestData.TransactionNumber, TestData.DeviceIdentifier, - TestData.OperatorId, TestData.CustomerEmailAddress, - TestData.ContractId, - TestData.ProductId, + (TestData.OperatorId, TestData.ContractId, TestData.ProductId), TestData.AdditionalRequestMetadata, CancellationToken.None); @@ -279,15 +267,12 @@ public async Task TransactionProcessorACLApplicationService_ProcessSaleTransacti .ThrowsAsync(new Exception("Error")); securityServiceClient.Setup(s => s.GetToken(It.IsAny(), It.IsAny(), It.IsAny())).ReturnsAsync(Result.Success(TestData.TokenResponse)); - Result result = await applicationService.ProcessSaleTransaction(TestData.EstateId, - TestData.MerchantId, + Result result = await applicationService.ProcessSaleTransaction((TestData.EstateId, TestData.MerchantId), TestData.TransactionDateTime, TestData.TransactionNumber, TestData.DeviceIdentifier, - TestData.OperatorId, TestData.CustomerEmailAddress, - TestData.ContractId, - TestData.ProductId, + (TestData.OperatorId, TestData.ContractId, TestData.ProductId), TestData.AdditionalRequestMetadata, CancellationToken.None); result.IsSuccess.ShouldBeTrue(); diff --git a/TransactionProcessorACL.BusinessLogic/RequestHandlers/ProcessLogonTransactionRequestHandler.cs b/TransactionProcessorACL.BusinessLogic/RequestHandlers/ProcessLogonTransactionRequestHandler.cs index c70025e..0c018da 100644 --- a/TransactionProcessorACL.BusinessLogic/RequestHandlers/ProcessLogonTransactionRequestHandler.cs +++ b/TransactionProcessorACL.BusinessLogic/RequestHandlers/ProcessLogonTransactionRequestHandler.cs @@ -64,15 +64,12 @@ public async Task> Handle(TransactionComma public async Task> Handle(TransactionCommands.ProcessSaleTransactionCommand command, CancellationToken cancellationToken) { - return await this.ApplicationService.ProcessSaleTransaction(command.EstateId, - command.MerchantId, + return await this.ApplicationService.ProcessSaleTransaction((command.EstateId, command.MerchantId), command.TransactionDateTime, command.TransactionNumber, command.DeviceIdentifier, - command.OperatorId, command.CustomerEmailAddress, - command.ContractId, - command.ProductId, + (command.OperatorId, command.ContractId, command.ProductId), command.AdditionalRequestMetadata, cancellationToken); } diff --git a/TransactionProcessorACL.BusinessLogic/Services/ITransactionProcessorACLApplicationService.cs b/TransactionProcessorACL.BusinessLogic/Services/ITransactionProcessorACLApplicationService.cs index c1f4f15..007c102 100644 --- a/TransactionProcessorACL.BusinessLogic/Services/ITransactionProcessorACLApplicationService.cs +++ b/TransactionProcessorACL.BusinessLogic/Services/ITransactionProcessorACLApplicationService.cs @@ -22,17 +22,13 @@ Task> ProcessLogonTransaction(Guid estat String deviceIdentifier, CancellationToken cancellationToken); - Task> ProcessSaleTransaction(Guid estateId, - Guid merchantId, - DateTime transactionDateTime, - String transactionNumber, - String deviceIdentifier, - Guid operatorId, - String customerEmailAddress, - Guid contractId, - Guid productId, - Dictionary additionalRequestMetadata, - CancellationToken cancellationToken); + Task> ProcessSaleTransaction((Guid estateId, Guid merchantId) merchantData, + DateTime transactionDateTime, + String transactionNumber, + String deviceIdentifier, + String customerEmailAddress, + (Guid operatorId, Guid contractId, Guid productId) productData, + Dictionary additionalRequestMetadata, CancellationToken cancellationToken); Task> ProcessReconciliation(Guid estateId, Guid merchantId, diff --git a/TransactionProcessorACL.BusinessLogic/Services/TransactionProcessorACLApplicationService.cs b/TransactionProcessorACL.BusinessLogic/Services/TransactionProcessorACLApplicationService.cs index b9dd723..d75f168 100644 --- a/TransactionProcessorACL.BusinessLogic/Services/TransactionProcessorACLApplicationService.cs +++ b/TransactionProcessorACL.BusinessLogic/Services/TransactionProcessorACLApplicationService.cs @@ -112,14 +112,12 @@ public async Task> ProcessLogonTransacti /// The additional request metadata. /// The cancellation token. /// - public async Task> ProcessSaleTransaction(Guid estateId, - Guid merchantId, + public async Task> ProcessSaleTransaction((Guid estateId, Guid merchantId) merchantData, DateTime transactionDateTime, String transactionNumber, String deviceIdentifier, - Guid operatorId, String customerEmailAddress, - Guid contractId, Guid productId, + (Guid operatorId, Guid contractId, Guid productId) productData, Dictionary additionalRequestMetadata, CancellationToken cancellationToken) { Result accessTokenResult = await this.GetAccessToken(cancellationToken); @@ -132,13 +130,13 @@ public async Task> ProcessSaleTransaction SaleTransactionRequest saleTransactionRequest = this.BuildSaleTransactionRequest(transactionNumber, deviceIdentifier, transactionDateTime, - operatorId, + productData.operatorId, customerEmailAddress, - contractId, - productId, + productData.contractId, + productData.productId, additionalRequestMetadata); - SerialisedMessage requestSerialisedMessage = this.BuildSaleTransactionSerialisedMessage(estateId, merchantId, saleTransactionRequest); + SerialisedMessage requestSerialisedMessage = this.BuildSaleTransactionSerialisedMessage(merchantData.estateId, merchantData.merchantId, saleTransactionRequest); ProcessSaleTransactionResponse response = null; @@ -152,11 +150,11 @@ public async Task> ProcessSaleTransaction SaleTransactionResponse saleTransactionResponse = JsonConvert.DeserializeObject(responseSerialisedMessage.SerialisedData); - response = this.CreateSaleTransactionResponse(saleTransactionResponse, estateId, merchantId); + response = this.CreateSaleTransactionResponse(saleTransactionResponse, merchantData.estateId, merchantData.merchantId); } catch (Exception ex) { - response = this.CreateSaleTransactionErrorResponse(estateId, merchantId, ex); + response = this.CreateSaleTransactionErrorResponse(merchantData.estateId, merchantData.merchantId, ex); } return Result.Success(response);