Пример #1
0
 public bool CanUse(CartModel cart)
 {
     var anythingToPay = cart.AnythingToPay();
     if (anythingToPay)
     {
         return StandardCanUseLogic(cart);
     }
     return IsPaymentNotRequired;
 }
        public bool CanUse(CartModel cart)
        {
            var anythingToPay = cart.AnythingToPay();

            if (anythingToPay)
            {
                return(StandardCanUseLogic(cart));
            }
            return(IsPaymentNotRequired);
        }
Пример #3
0
        public PaymentNotRequiredResult TryPlaceOrder()
        {
            if (_cartModel.AnythingToPay())
            {
                return(new PaymentNotRequiredResult
                {
                    Success = false,
                    FailureDetails = new FailureDetails
                    {
                        Message =
                            _stringResourceProvider.GetValue("Payment Not Required Unavailable",
                                                             "The payment type is invalid for this cart, as there is something to pay"),
                    },
                    RedirectTo = _uniquePageService.RedirectTo <PaymentDetails>()
                });
            }

            if (_cartModel.CannotPlaceOrderReasons.Any())
            {
                return(new PaymentNotRequiredResult
                {
                    Success = false,
                    FailureDetails =
                        new FailureDetails
                    {
                        Message = string.Join(", ", _cartModel.CannotPlaceOrderReasons)
                    },
                    RedirectTo = _uniquePageService.RedirectTo <PaymentDetails>()
                });
            }

            var placeOrder = _orderPlacementService.PlaceOrder(_cartModel, order =>
            {
                order.PaymentStatus = PaymentStatus.Paid;
            });

            return(new PaymentNotRequiredResult
            {
                Success = true,
                RedirectTo = _uniquePageService.RedirectTo <OrderPlaced>(new { id = placeOrder.Guid })
            });
        }