Пример #1
0
        public IActionResult Post(PaymentRequestVM paymentRequest)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    paymentRequest.ExpirationDate = new DateTime(paymentRequest.ExpirationDate.Year, paymentRequest.ExpirationDate.Month, 1);

                    PaymentStatusVM result = service.ProcessPaymentRequest(paymentRequest);

                    if (result.PaymentStatus == Enums.PaymentProcessStatus.processed.ToString())
                    {
                        return(Ok("Payment is processed"));
                    }
                    else
                    {
                        return(StatusCode(StatusCodes.Status500InternalServerError, "Unable to process payment"));
                    }
                }
                else
                {
                    return(BadRequest("Invalid inputs"));
                }
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, ex.Message);
                return(StatusCode(500, "Internal server error exception raised"));
            }
        }
Пример #2
0
        public PaymentStatusVM ProcessPaymentRequest(PaymentRequestVM paymentRequest)
        {
            GatewayFactory gatewayFactory = new GatewayFactory(unitOfWork);

            IPaymentGateway paymentGateway = gatewayFactory.GetPaymentGateway(paymentRequest.Amount);

            PaymentInfo pi = mapper.Map <PaymentRequestVM, PaymentInfo>(paymentRequest);

            return(paymentGateway.ProcessPayment(pi));
        }