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 void Credit(CcDepositRequest depositRequest, AuthorizationResponse response, Action <CcDepositResponse> onFunded) { if (depositRequest.Currency == "DEM") { throw new ApplicationException("Are you serious? Deposits in Deutsche Mark are not supported since 2002!"); } Debug.WriteLine( $"Funding Customer Account. TransactionId={response.TransactionId} AccountNumber={depositRequest.AccountNumber} Amount={depositRequest.Amount} Currency={depositRequest.Currency}"); onFunded(new DepositResponseFactory().FromClearingResponse(depositRequest, response)); }
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 }); } }
public void Credit(CcDepositRequest depositRequest, AuthorizationResponse response, Action <CcDepositResponse> onFunded) { new CustomerBalance().Credit(depositRequest, response, onFunded); }