@@ -250,52 +250,25 @@ public async Task<Result<ProcessReconciliationResponse>> ProcessReconciliation(G
250250 }
251251
252252 TokenResponse accessToken = accessTokenResult . Data ;
253- ReconciliationRequest reconciliationRequest = new ReconciliationRequest ( ) ;
254- reconciliationRequest . DeviceIdentifier = deviceIdentifier ;
255- reconciliationRequest . TransactionDateTime = transactionDateTime ;
256- reconciliationRequest . TransactionCount = transactionCount ;
257- reconciliationRequest . TransactionValue = transactionValue ;
258-
259- SerialisedMessage requestSerialisedMessage = new SerialisedMessage ( ) ;
260- requestSerialisedMessage . Metadata . Add ( MetadataContants . KeyNameEstateId , estateId . ToString ( ) ) ;
261- requestSerialisedMessage . Metadata . Add ( MetadataContants . KeyNameMerchantId , merchantId . ToString ( ) ) ;
262- requestSerialisedMessage . SerialisedData = JsonConvert . SerializeObject ( reconciliationRequest ,
263- new JsonSerializerSettings
264- {
265- TypeNameHandling = TypeNameHandling . All
266- } ) ;
267-
268- ProcessReconciliationResponse response = null ;
253+ SerialisedMessage requestSerialisedMessage = CreateReconciliationRequestMessage ( estateId ,
254+ merchantId ,
255+ transactionDateTime ,
256+ deviceIdentifier ,
257+ transactionCount ,
258+ transactionValue ) ;
269259
270260 try
271261 {
272262 Result < SerialisedMessage > transactionResult =
273263 await this . TransactionProcessorClient . PerformTransaction ( accessToken . AccessToken , requestSerialisedMessage , cancellationToken ) ;
274264 if ( transactionResult . IsFailed )
275265 return ResultHelpers . CreateFailure ( transactionResult ) ;
276- SerialisedMessage responseSerialisedMessage = transactionResult . Data ;
277- ReconciliationResponse reconciliationResponse = JsonConvert . DeserializeObject < ReconciliationResponse > ( responseSerialisedMessage . SerialisedData ) ;
278-
279- response = new ProcessReconciliationResponse
280- {
281- ResponseCode = reconciliationResponse . ResponseCode ,
282- ResponseMessage = reconciliationResponse . ResponseMessage ,
283- TransactionId = reconciliationResponse . TransactionId ,
284- } ;
266+ return Result . Success ( CreateProcessReconciliationResponse ( transactionResult . Data ) ) ;
285267 }
286268 catch ( Exception ex )
287269 {
288- response = new ProcessReconciliationResponse
289- {
290- ResponseCode = "0001" , // Request Message error
291- ResponseMessage = "Process Reconciliation Failed" ,
292- EstateId = estateId ,
293- MerchantId = merchantId ,
294- ErrorMessages = ex . GetExceptionMessages ( )
295- } ;
270+ return Result . Success ( CreateReconciliationErrorResponse ( estateId , merchantId , ex ) ) ;
296271 }
297-
298- return Result . Success ( response ) ;
299272 }
300273
301274 public async Task < GetVoucherResponse > GetVoucher ( Guid estateId ,
@@ -526,6 +499,59 @@ public async Task<Result<MerchantResponse>> GetMerchant(Guid estateId,
526499 return merchantResponse ;
527500 }
528501
502+ private static ProcessReconciliationResponse CreateProcessReconciliationResponse ( SerialisedMessage responseSerialisedMessage )
503+ {
504+ ReconciliationResponse reconciliationResponse = JsonConvert . DeserializeObject < ReconciliationResponse > ( responseSerialisedMessage . SerialisedData ) ;
505+
506+ return new ProcessReconciliationResponse
507+ {
508+ ResponseCode = reconciliationResponse . ResponseCode ,
509+ ResponseMessage = reconciliationResponse . ResponseMessage ,
510+ TransactionId = reconciliationResponse . TransactionId ,
511+ } ;
512+ }
513+
514+ private static ProcessReconciliationResponse CreateReconciliationErrorResponse ( Guid estateId ,
515+ Guid merchantId ,
516+ Exception ex )
517+ {
518+ return new ProcessReconciliationResponse
519+ {
520+ ResponseCode = "0001" , // Request Message error
521+ ResponseMessage = "Process Reconciliation Failed" ,
522+ EstateId = estateId ,
523+ MerchantId = merchantId ,
524+ ErrorMessages = ex . GetExceptionMessages ( )
525+ } ;
526+ }
527+
528+ private static SerialisedMessage CreateReconciliationRequestMessage ( Guid estateId ,
529+ Guid merchantId ,
530+ DateTime transactionDateTime ,
531+ String deviceIdentifier ,
532+ Int32 transactionCount ,
533+ Decimal transactionValue )
534+ {
535+ ReconciliationRequest reconciliationRequest = new ReconciliationRequest
536+ {
537+ DeviceIdentifier = deviceIdentifier ,
538+ TransactionDateTime = transactionDateTime ,
539+ TransactionCount = transactionCount ,
540+ TransactionValue = transactionValue
541+ } ;
542+
543+ SerialisedMessage requestSerialisedMessage = new SerialisedMessage ( ) ;
544+ requestSerialisedMessage . Metadata . Add ( MetadataContants . KeyNameEstateId , estateId . ToString ( ) ) ;
545+ requestSerialisedMessage . Metadata . Add ( MetadataContants . KeyNameMerchantId , merchantId . ToString ( ) ) ;
546+ requestSerialisedMessage . SerialisedData = JsonConvert . SerializeObject ( reconciliationRequest ,
547+ new JsonSerializerSettings
548+ {
549+ TypeNameHandling = TypeNameHandling . All
550+ } ) ;
551+
552+ return requestSerialisedMessage ;
553+ }
554+
529555 #endregion
530556 }
531557}
0 commit comments