예제 #1
0
        public List <PaypalShippingOption> Get(PaypalShippingInfo info)
        {
            CartModel cart = _paypalExpressCartLoader.GetCart(info.Token);

            if (cart == null)
            {
                return(new List <PaypalShippingOption>());
            }

            _cartManager.SetShippingAddress(info.ToAddress(), cart.UserGuid);

            cart = _cartBuilder.BuildCart(cart.UserGuid);

            IOrderedEnumerable <IShippingMethod> orderedEnumerable = _shippingMethodUIService.GetEnabledMethods()
                                                                     .FindAll(method => method.CanBeUsed(cart))
                                                                     .OrderBy(method => method.GetShippingTotal(cart));

            List <PaypalShippingOption> paypalShippingOptions = orderedEnumerable.Select(x => new PaypalShippingOption
            {
                Amount          = x.GetShippingTotal(cart),
                Default         = false,
                InsuranceAmount = 0m,
                DisplayName     = x.DisplayName,
                Label           = string.Format("({0})", x.Name),
                TotalTax        = cart.ItemTax
            }).ToList();

            if (paypalShippingOptions.Any())
            {
                paypalShippingOptions[0].Default = true;
            }
            return(paypalShippingOptions);
        }
예제 #2
0
        public ActionResult Handler(PaypalShippingInfo info)
        {
            var options = _getPaypalShippingOptions.Get(info);

            return(new CallbackResponseResult(options));
        }