public ActionResult CreatePayment(PaymentPickerViewModel createPaymentViewModel) { _transactionLibrary.CreatePayment(createPaymentViewModel.SelectedPaymentMethodId, -1m, false, true); _transactionLibrary.ExecuteBasketPipeline(); return(Redirect("/preview")); }
public ActionResult Rendering() { var paymentPickerViewModel = new PaymentPickerViewModel(); var basket = _transactionLibrary.GetBasket(); var shippingCountry = basket.GetShippingAddress(Constants.DefaultShipmentAddressName).Country; paymentPickerViewModel.ShippingCountry = shippingCountry.Name; var availablePaymentMethods = _transactionLibrary.GetPaymentMethods(shippingCountry); var existingPayment = basket.Payments.FirstOrDefault(); paymentPickerViewModel.SelectedPaymentMethodId = existingPayment != null ? existingPayment.PaymentMethod.PaymentMethodId : -1; foreach (var availablePaymentMethod in availablePaymentMethods) { var option = new SelectListItem(); decimal feePercent = availablePaymentMethod.FeePercent; var fee = availablePaymentMethod.GetFeeForCurrency(basket.BillingCurrency); var formattedFee = new Money((fee == null ? 0 : fee.Fee), basket.BillingCurrency.ISOCode); option.Text = String.Format(" {0} ({1} + {2}%)", availablePaymentMethod.Name, formattedFee, feePercent.ToString("0.00")); option.Value = availablePaymentMethod.PaymentMethodId.ToString(); option.Selected = availablePaymentMethod.PaymentMethodId == paymentPickerViewModel.SelectedPaymentMethodId; paymentPickerViewModel.AvailablePaymentMethods.Add(option); } return(View(paymentPickerViewModel)); }
public ActionResult Rendering() { var paymentPickerViewModel = new PaymentPickerViewModel(); var cart = GetCart(); var paymentOption = GetPaymentOptions(cart.ShopName).FirstOrDefault(); var paymentMethods = GetPaymentMethods(paymentOption, cart); var paymentMethodPrices = GetPaymentMethodPrices(paymentMethods, cart); var payment = cart.Payment.FirstOrDefault(); if (payment != null) { int paymentMethodId; if (int.TryParse(payment.PaymentMethodID, out paymentMethodId)) { paymentPickerViewModel.SelectedPaymentMethodId = paymentMethodId; } } foreach (var paymentMethod in paymentMethods) { var option = new SelectListItem(); var paymentPrice = paymentMethodPrices.First(x => x.MethodId == paymentMethod.ExternalId); decimal feePercent = (decimal)paymentPrice.GetPropertyValue("FeePercent"); var fee = paymentPrice.Amount; var formattedFee = string.Format("{0} {1}", fee, paymentPrice.CurrencyCode); option.Text = String.Format(" {0} ({1} + {2}%)", paymentMethod.Name, formattedFee, feePercent.ToString("0.00")); option.Value = paymentMethod.ExternalId; option.Selected = paymentMethod.ExternalId == paymentPickerViewModel.SelectedPaymentMethodId.ToString(); paymentPickerViewModel.AvailablePaymentMethods.Add(option); } return(View(paymentPickerViewModel)); }
public virtual PaymentPickerViewModel GetViewModel() { var paymentPickerViewModel = new PaymentPickerViewModel(); var basket = _transactionLibraryInternal.GetBasket().PurchaseOrder; var shippingCountry = UCommerce.Api.TransactionLibrary.GetCountries().SingleOrDefault(x => x.Name == "Germany"); paymentPickerViewModel.ShippingCountry = shippingCountry.Name; var availablePaymentMethods = _transactionLibraryInternal.GetPaymentMethods(shippingCountry); var existingPayment = basket.Payments.FirstOrDefault(); paymentPickerViewModel.SelectedPaymentMethodId = existingPayment != null ? existingPayment.PaymentMethod.PaymentMethodId : -1; var priceGroup = SiteContext.Current.CatalogContext.CurrentPriceGroup; foreach (var availablePaymentMethod in availablePaymentMethods) { var option = new SelectListItem(); decimal feePercent = availablePaymentMethod.FeePercent; var fee = availablePaymentMethod.GetFeeForPriceGroup(priceGroup); var formattedFee = new Money(fee == null ? 0 : fee.Fee, basket.BillingCurrency); option.Text = String.Format(" {0} ({1} + {2}%)", availablePaymentMethod.Name, formattedFee, feePercent.ToString("0.00")); option.Value = availablePaymentMethod.PaymentMethodId.ToString(); option.Selected = availablePaymentMethod.PaymentMethodId == paymentPickerViewModel.SelectedPaymentMethodId; paymentPickerViewModel.AvailablePaymentMethods.Add(option); } _transactionLibraryInternal.ExecuteBasketPipeline(); paymentPickerViewModel.NextStepUrl = GetNextStepUrl(nextStepId); paymentPickerViewModel.PreviousStepUrl = GetPreviousStepUrl(previousStepId); return(paymentPickerViewModel); }
public void CreatePayment_And_ExecuteBasketPipeline_Are_Called() { // Arrange var viewModel = new PaymentPickerViewModel { SelectedPaymentMethodId = 0, ShippingCountry = "Denmark" }; viewModel.AvailablePaymentMethods.Add(new SelectListItem { Selected = true, Text = "Text", Value = "Paypal" }); // Act var result = _controller.CreatePayment(viewModel); // Assert _transactionLibraryInternal.Received().CreatePayment(viewModel.SelectedPaymentMethodId, -1m, false, true); _transactionLibraryInternal.Received().ExecuteBasketPipeline(); }
public ActionResult CreatePayment(PaymentPickerViewModel createPaymentViewModel) { var model = ResolveModel(); string message; var parameters = new System.Collections.Generic.Dictionary <string, object>(); if (!model.CanProcessRequest(parameters, out message)) { return(this.PartialView("_Warning", message)); } var viewModel = model.GetViewModel(); model.CreatePayment(createPaymentViewModel); if (viewModel.NextStepUrl?.Length == 0) { return(new EmptyResult()); } else { return(Redirect(viewModel.NextStepUrl)); } }
public ActionResult CreatePayment(PaymentPickerViewModel createPaymentViewModel) { var cartService = new CartServiceProvider(); var cart = GetCart(); // First remove all the existing payment info's associated with the cart. var removeRequest = new RemovePaymentInfoRequest(cart, cart.Payment.ToList()); cartService.RemovePaymentInfo(removeRequest); var paymentList = new List <PaymentInfo> { new PaymentInfo() { PaymentMethodID = createPaymentViewModel.SelectedPaymentMethodId.ToString(), } }; var addRequest = new AddPaymentInfoRequest(cart, paymentList); cartService.AddPaymentInfo(addRequest); return(Redirect("/preview")); }
public ActionResult CreatePayment(PaymentPickerViewModel createPaymentViewModel) { var model = ResolveModel(); string message; var parameters = new System.Collections.Generic.Dictionary <string, object>(); if (!model.CanProcessRequest(parameters, out message)) { return(this.PartialView("_Warning", message)); } var viewModel = model.GetViewModel(); model.CreatePayment(createPaymentViewModel); if (ModelState.IsValid) { return(this.Json(new OperationStatusDTO() { Status = "success" }, JsonRequestBehavior.AllowGet)); } else { var errorList = ModelState.ToDictionary( kvp => kvp.Key, kvp => kvp.Value.Errors.Select(e => e.ErrorMessage).ToArray() ); var responseDTO = new OperationStatusDTO(); responseDTO.Status = "failed"; responseDTO.Data.Add("errors", errorList); return(this.Json(responseDTO, JsonRequestBehavior.AllowGet)); } }
public virtual void CreatePayment(PaymentPickerViewModel createPaymentViewModel) { _transactionLibraryInternal.CreatePayment(createPaymentViewModel.SelectedPaymentMethodId, -1m, false, true); _transactionLibraryInternal.ExecuteBasketPipeline(); }
public virtual PaymentPickerViewModel GetViewModel() { Ucommerce.EntitiesV2.PurchaseOrder purchaseOrder; var paymentPickerViewModel = new PaymentPickerViewModel(); try { purchaseOrder = TransactionLibrary.GetBasket(); } catch (Exception ex) { Log.Write(ex, ConfigurationPolicy.ErrorLog); return(null); } if (!purchaseOrder.OrderLines.Any()) { return(null); } var shippingAddress = TransactionLibrary.GetShippingInformation(Ucommerce.Constants.DefaultShipmentAddressName); var shippingCountry = shippingAddress.Country; if (shippingCountry != null) { paymentPickerViewModel.ShippingCountry = shippingCountry.Name; var availablePaymentMethods = TransactionLibrary.GetPaymentMethods(shippingCountry); var existingPayment = purchaseOrder.Payments.FirstOrDefault(); paymentPickerViewModel.SelectedPaymentMethodId = existingPayment != null ? existingPayment.PaymentMethod.PaymentMethodId : -1; var priceGroupRepository = ObjectFactory.Instance.Resolve <Ucommerce.EntitiesV2.IRepository <Ucommerce.EntitiesV2.PriceGroup> >(); var priceGroup = priceGroupRepository.SingleOrDefault(pg => pg.Guid == CatalogContext.CurrentPriceGroup.Guid); foreach (var availablePaymentMethod in availablePaymentMethods) { var option = new SelectListItem(); decimal feePercent = availablePaymentMethod.FeePercent; var localizedPaymentMethod = availablePaymentMethod.PaymentMethodDescriptions.FirstOrDefault(s => s.CultureCode.Equals(CultureInfo.CurrentCulture.ToString())); var fee = availablePaymentMethod.GetFeeForPriceGroup(priceGroup); var formattedFee = new Money(fee == null ? 0 : fee.Fee, purchaseOrder.BillingCurrency.ISOCode); if (localizedPaymentMethod != null) { var displayName = localizedPaymentMethod.DisplayName; if (string.IsNullOrWhiteSpace(displayName)) { displayName = availablePaymentMethod.Name; } option.Text = String.Format(" {0} ({1} + {2}%)", displayName, formattedFee, feePercent.ToString("0.00")); option.Value = availablePaymentMethod.PaymentMethodId.ToString(); option.Selected = availablePaymentMethod.PaymentMethodId == paymentPickerViewModel.SelectedPaymentMethodId; } paymentPickerViewModel.AvailablePaymentMethods.Add(option); } } TransactionLibrary.ExecuteBasketPipeline(); paymentPickerViewModel.NextStepUrl = GetNextStepUrl(nextStepId); paymentPickerViewModel.PreviousStepUrl = GetPreviousStepUrl(previousStepId); return(paymentPickerViewModel); }