private void RaiseSubmitPaymentInteractionRequest() { var payment = new Foundation.Orders.Model.CreditCardPayment(); switch (InnerModel.RefundOption) { case "original": payment.InjectFrom(InnerModel.SelectedPayment); break; case "manual": payment = InnerModel.NewPaymentSource.NewPayment; payment.PaymentType = Foundation.Orders.Model.PaymentType.CreditCard.GetHashCode(); var initialPayment = InnerModel.Payments .Where(x => x is Foundation.Orders.Model.CreditCardPayment) .OrderByDescending(x => x.Created).FirstOrDefault(); if (initialPayment != null) { payment.ValidationCode = initialPayment.ValidationCode; payment.AuthorizationCode = initialPayment.AuthorizationCode; payment.OrderFormId = initialPayment.OrderFormId; } break; } payment.Amount = InnerModel.Amount; payment.PaymentId = payment.GenerateNewKey(); payment.TransactionType = Foundation.Orders.Model.TransactionType.Credit.ToString(); try { var paymentResult = _orderService.CreatePayment(payment); _createPaymentSucceeded = paymentResult.IsSuccess; if (_createPaymentSucceeded && InnerModel.OnAfterSuccessfulSubmit != null) { InnerModel.OnAfterSuccessfulSubmit(); } TransactionId = paymentResult.TransactionId; SubmitPaymentResultMessage = paymentResult.Message; } finally { InnerModel.IsPaymentSubmitted = true; OnPropertyChanged("IsValid"); } }
private void RaiseSubmitPaymentInteractionRequest() { var payment = new Foundation.Orders.Model.CreditCardPayment(); switch (InnerModel.RefundOption) { case "original": payment.InjectFrom(InnerModel.SelectedPayment); break; case "manual": payment = InnerModel.NewPaymentSource.NewPayment; payment.PaymentType = Foundation.Orders.Model.PaymentType.CreditCard.GetHashCode(); var initialPayment = InnerModel.Payments .Where(x => x is Foundation.Orders.Model.CreditCardPayment) .OrderByDescending(x => x.Created).FirstOrDefault(); if (initialPayment != null) { payment.ValidationCode = initialPayment.ValidationCode; payment.AuthorizationCode = initialPayment.AuthorizationCode; payment.OrderFormId = initialPayment.OrderFormId; } break; } payment.Amount = InnerModel.Amount; payment.PaymentId = payment.GenerateNewKey(); payment.TransactionType = Foundation.Orders.Model.TransactionType.Credit.ToString(); try { var paymentResult = _orderService.CreatePayment(payment); _createPaymentSucceeded = paymentResult.IsSuccess; if (_createPaymentSucceeded && InnerModel.OnAfterSuccessfulSubmit != null) InnerModel.OnAfterSuccessfulSubmit(); TransactionId = paymentResult.TransactionId; SubmitPaymentResultMessage = paymentResult.Message; } finally { InnerModel.IsPaymentSubmitted = true; OnPropertyChanged("IsValid"); } }