コード例 #1
0
        public PipelineExecutionResult Execute(IPipelineArgs <RemoveShipmentRequest, RemoveShipmentResult> subject)
        {
            if (subject.Request.Properties.ContainsKey("FromUCommerce"))
            {
                if (!(bool)subject.Request.Properties["FromUCommerce"])
                {
                    return(PipelineExecutionResult.Success);
                }
            }

            var cart = MappingLibrary.MapPurchaseOrderToCart(subject.Request.PurchaseOrder);

            var cartService  = new CartServiceProvider();
            var shippingList = new List <ShippingInfo>
            {
                new ShippingInfo()
                {
                    ExternalId       = subject.Request.Shipment.ShipmentId.ToString(),
                    PartyID          = subject.Request.Shipment.ShipmentAddress.OrderAddressId.ToString(),
                    ShippingMethodID = subject.Request.Shipment.ShippingMethod.ShippingMethodId.ToString()
                }
            };
            var request = new RemoveShippingInfoRequest(cart, shippingList);

            request.Properties["FromUCommerce"] = true;

            var result = cartService.RemoveShippingInfo(request);

            return(PipelineExecutionResult.Success);
        }
        public ActionResult CreateShipment(ShippingPickerViewModel createShipmentViewModel)
        {
            var cartService = new CartServiceProvider();
            var cart        = GetCart();

            if (cart.Shipping.Any())
            {
                var removeRequest = new RemoveShippingInfoRequest(cart, cart.Shipping.ToList());
                var removeResult  = cartService.RemoveShippingInfo(removeRequest);
            }

            var shippingParty = cart.Parties.FirstOrDefault(x => x.PartyId == Constants.DefaultShipmentAddressName);
            var shippingList  = new List <ShippingInfo>
            {
                new ShippingInfo()
                {
                    ShippingMethodID = createShipmentViewModel.SelectedShippingMethodId.ToString(),
                    PartyID          = shippingParty.PartyId
                }
            };

            var addRequest = new AddShippingInfoRequest(cart, shippingList);
            var addResult  = cartService.AddShippingInfo(addRequest);

            return(Redirect("/payment"));
        }
コード例 #3
0
        /// <summary>
        /// Removes all shipping 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 the cart result and returned cart.</returns>
        public virtual ManagerResponse<CartResult, CommerceCart> RemoveAllShippingMethods([NotNull] CommerceStorefront storefront, [NotNull] VisitorContext visitorContext, [NotNull] CommerceCart cart)
        {
            Assert.ArgumentNotNull(storefront, "storefront");
            Assert.ArgumentNotNull(visitorContext, "visitorContext");
            Assert.ArgumentNotNull(cart, "cart");

            if (cart.Shipping != null && cart.Shipping.Any())
            {
                var request = new RemoveShippingInfoRequest(cart, cart.Shipping.ToList());
                var response = this.CartServiceProvider.RemoveShippingInfo(request);

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

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