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); }