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); }
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 }) }); }