public ActionResult UpdatePayment(CheckoutPage currentPage, CheckoutViewModel viewModel, IPaymentMethod paymentOption)
        {
            if (!paymentOption.ValidateData())
            {
                return(View(viewModel));
            }

            if (paymentOption is GiftCardPaymentOption)
            {
                var giftCard     = _giftCardService.GetGiftCard(((GiftCardPaymentOption)paymentOption).SelectedGiftCardId);
                var paymentTotal = CurrencyFormatter.ConvertCurrency(new Money(viewModel.OrderSummary.PaymentTotal, CartWithValidationIssues.Cart.Currency), Currency.USD);
                if (paymentTotal > giftCard.RemainBalance)
                {
                    return(new HttpStatusCodeResult(HttpStatusCode.BadRequest, "Not enought money in Gift Card"));
                }
            }

            viewModel.Payment = paymentOption;
            _checkoutService.CreateAndAddPaymentToCart(CartWithValidationIssues.Cart, viewModel);
            _orderRepository.Save(CartWithValidationIssues.Cart);

            var model = CreateCheckoutViewModel(currentPage);

            model.OrderSummary = _orderSummaryViewModelFactory.CreateOrderSummaryViewModel(CartWithValidationIssues.Cart);

            if (Request.IsAuthenticated)
            {
                model.BillingAddressType = 1;
            }
            else
            {
                model.BillingAddressType = 0;
            }
            return(PartialView("_AddPayment", model));
        }
Exemple #2
0
        public ActionResult <GiftCardViewModel> Get(int id)
        {
            var giftCard = _giftCardService.GetGiftCard(id);

            return(Ok(giftCard));
        }