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