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)); }
public ActionResult <GiftCardViewModel> Get(int id) { var giftCard = _giftCardService.GetGiftCard(id); return(Ok(giftCard)); }