예제 #1
0
        public PaymentState ProceessAmount(PaymentModel payment)
        {
            PaymentState paymentState;

            try
            {
                CreditCardDetails creditCardDetails = _mapper.Map <CreditCardDetails>(payment);

                _dal.InsertCreditCardDetails(creditCardDetails);

                var status = _factory.GetPaymentGateway(payment.Amount);

                paymentState = _mapper.Map <PaymentState>(payment);

                paymentState.StateOfTransation = status.ToString();

                _dal.InsertTransactionDetails(paymentState);
            }
            catch (Exception ex) {
                paymentState = _mapper.Map <PaymentState>(payment);
                paymentState.StateOfTransation = PaymentStatus.Failed.ToString();
            }

            return(paymentState);
        }