public CcDepositResponse FromPendingRequest(Guid transactionId, CcDepositRequest request) { return new CcDepositResponse { AccountNumber = request.AccountNumber, Status = DepositStatus.Pending, TransactionId = transactionId }; }
public CcDepositResponse FromClearingTimeout(Guid transactionId, CcDepositRequest request, RequestTimeoutExpired source) { return new CcDepositResponse { AccountNumber = request.AccountNumber, Status = DepositStatus.Timedout, ErrorMessage = $"Clearing Api call timed out. Expiration Time={source.ExpirationTime}", TransactionId = transactionId }; }
public AuthorizationRequest FromDepositRequest(Guid transactionId, CcDepositRequest request) { return new AuthorizationRequest { TransactionId = transactionId, AccountNumber = request.AccountNumber, Amount = request.Amount, CardToken = "ABC123", CardType = CardType.MasterCard, Currency = request.Currency }; }
public CcDepositResponse FromClearingResponse(CcDepositRequest request, ClearingResponse source) { return new CcDepositResponse { AccountNumber = request.AccountNumber, Status = source.ClearingStatus == ClearingStatus.Rejected ? DepositStatus.Rejected : DepositStatus.Success, ErrorMessage = source.ClearingStatus == ClearingStatus.Rejected ? $"Clearing Api rejected transaction. ErrorCode={source.ErrorCode} ResponseCode={source.ResponseCode}" : "", TransactionId = source.TransactionId }; }
public async Task<CcDepositResponse> CcDeposit(CcDepositRequest request) { try { var client = _bus.CreateRequestClient<CcDepositRequest, CcDepositResponse>( new Uri(ConfigurationManager.AppSettings["GatewayServiceAddress"]), new TimeSpan(0, 0, 0, 30)); return await client.Request(request); } catch (RequestTimeoutException) { return new CcDepositResponse {AccountNumber = request.AccountNumber, Status = DepositStatus.Timedout}; } }