public void ShouldRemovePaymentInfoFromCart()
    {
      var guid = Guid.NewGuid();
      var request = new RemovePaymentInfoRequest(
        new Cart()
        {
          ExternalId = guid.ToString(),
          ShopName = "my store"
        },
        new List<PaymentInfo>()
        {
          new PaymentInfo()
          {
            PaymentProviderID = "Payments.PurchaseOrder",
            PaymentMethodID = "Purchase Order"
          }
        });

      var result = new RemovePaymentInfoResult();
      var args = new ServicePipelineArgs(request, result);

      _client.RemovePaymentInfo(guid, Arg.Any<PaymentInfoModel>(), request.Cart.ShopName)
        .Returns(new PaymentInfoModelResponse
        {
          Success = true
        });

      _processor.Process(args);

      result.Success.Should().BeTrue();
      result.Payments.Should().HaveCount(0);
      result.Cart.Payment.Should().HaveCount(0);
    }
        public virtual ManagerResponse <CartResult, Cart> RemoveAllPaymentMethods(Cart cart)
        {
            RemovePaymentInfoResult paymentInfoResult = null;

            if (cart.Payment != null && cart.Payment.Any())
            {
                var request = new RemovePaymentInfoRequest(cart, cart.Payment);
                paymentInfoResult = this.cartServiceProvider.RemovePaymentInfo(request);
                return(new ManagerResponse <CartResult, Cart>(paymentInfoResult, paymentInfoResult.Cart));
            }

            paymentInfoResult = new RemovePaymentInfoResult {
                Success = true
            };
            return(new ManagerResponse <CartResult, Cart>(paymentInfoResult, cart));
        }
Пример #3
0
        /// <summary>
        /// Removes Payment info from a cart
        /// </summary>
        /// <param name="storefront">The Storefront Context</param>
        /// <param name="visitorContext">The Visitor Context</param>
        /// <param name="cart">the cart</param>
        /// <param name="info">the payment info</param>
        /// <param name="refreshCart">if set to <c>true</c> the cart will be re-calculated using the Commerce Server pipelines.</param>
        /// <returns>
        /// the updated cart
        /// </returns>
        protected virtual CartResult RemovePaymentInfoFromCart([NotNull] CommerceStorefront storefront, [NotNull] VisitorContext visitorContext, [NotNull] CommerceCart cart, [NotNull] List <PaymentInfo> info, bool refreshCart = false)
        {
            Assert.ArgumentNotNull(cart, "cart");
            Assert.ArgumentNotNull(info, "info");

            var request = new RemovePaymentInfoRequest(cart, info);

            request.RefreshCart(refreshCart);
            var result = this.CartServiceProvider.RemovePaymentInfo(request);

            if (!result.Success)
            {
                Helpers.LogSystemMessages(result.SystemMessages, result);
            }

            return(result);
        }
Пример #4
0
        public ActionResult RemoveSimplePayment()
        {
            var shopName =
                "CommerceEngineDefaultStorefront"; // Better use a configured store, not CommerceEngineDefaultStorefront as it's not really configured
            var cartName = "Default";
            var userId   = "CommerceUsers\\[email protected]";
            var domain   = Context.User.Domain;

            // Get a cart
            var loadCartRequest = new LoadCartByNameRequest(shopName, cartName, userId);
            var cartResult      = _cartServiceProvider.LoadCart(loadCartRequest);

            Assert.IsTrue(cartResult.Success, String.Join("|", cartResult.SystemMessages.Select(e => e.Message)));

            var cart = cartResult.Cart;

            var removePaymentInfoRequest = new RemovePaymentInfoRequest(cart, cart.Payment);
            var removePaymentInfoResult  = _cartServiceProvider.RemovePaymentInfo(removePaymentInfoRequest);

            Assert.IsTrue(removePaymentInfoResult.Success, String.Join("|", removePaymentInfoResult.SystemMessages.Select(e => e.Message)));

            return(View(removePaymentInfoResult));
        }
        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"));
        }
Пример #6
0
        /// <summary>
        /// Removes Payment info from a cart
        /// </summary>
        /// <param name="storefront">The Storefront Context</param>
        /// <param name="visitorContext">The Visitor Context</param>
        /// <param name="cart">the cart</param>
        /// <param name="info">the payment info</param>
        /// <param name="refreshCart">if set to <c>true</c> the cart will be re-calculated using the Commerce Server pipelines.</param>
        /// <returns>
        /// the updated cart
        /// </returns>
        protected virtual CartResult RemovePaymentInfoFromCart([NotNull] CommerceStorefront storefront, [NotNull] VisitorContext visitorContext, [NotNull] CommerceCart cart, [NotNull] List<PaymentInfo> info, bool refreshCart = false)
        {
            Assert.ArgumentNotNull(cart, "cart");
            Assert.ArgumentNotNull(info, "info");

            var request = new RemovePaymentInfoRequest(cart, info);
            request.RefreshCart(refreshCart);
            var result = this.CartServiceProvider.RemovePaymentInfo(request);
            if (!result.Success)
            {
                Helpers.LogSystemMessages(result.SystemMessages, result);
            }

            return result;
        }
Пример #7
0
        /// <summary>
        /// Removes all payment methods.
        /// </summary>
        /// <param name="storefront">The storefront.</param>
        /// <param name="visitorContext">The visitor context.</param>
        /// <param name="cart">The cart.</param>
        /// <returns>The manager response with a cart in the result.</returns>
        public virtual ManagerResponse<CartResult, CommerceCart> RemoveAllPaymentMethods([NotNull] CommerceStorefront storefront, [NotNull] VisitorContext visitorContext, [NotNull] CommerceCart cart)
        {
            Assert.ArgumentNotNull(storefront, "storefront");
            Assert.ArgumentNotNull(visitorContext, "visitorContext");
            Assert.ArgumentNotNull(cart, "cart");

            if (cart.Payment != null && cart.Payment.Any())
            {
                var request = new RemovePaymentInfoRequest(cart, cart.Payment.ToList());
                var response = this.CartServiceProvider.RemovePaymentInfo(request);

                return new ManagerResponse<CartResult, CommerceCart>(response, response.Cart as CommerceCart);
            }

            return new ManagerResponse<CartResult, CommerceCart>(new RemovePaymentInfoResult { Success = true }, cart);
        }