Ejemplo n.º 1
0
 public CcDepositResponse FromPendingRequest(Guid transactionId, CcDepositRequest request)
 {
     return(new CcDepositResponse
     {
         AccountNumber = request.AccountNumber,
         Status = DepositStatus.Pending,
         TransactionId = transactionId
     });
 }
Ejemplo n.º 2
0
 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
     });
 }
Ejemplo n.º 3
0
        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
     });
 }
Ejemplo n.º 5
0
 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
     });
 }
Ejemplo n.º 6
0
 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);
 }