Example #1
0
        public ActionResult Index()
        {
            var viewModel = new PaymentDemoViewModel();

            InitializeModel(viewModel);

            return(View(viewModel));
        }
Example #2
0
        public ActionResult SimulatePurchase(PaymentDemoViewModel viewModel)
        {
            var cart = _orderRepository.LoadOrCreateCart <ICart>(CustomerContext.Current.CurrentContactId, "Default");

            cart.GetFirstShipment().ShippingMethodId = viewModel.SelectedShippingMethodId;

            var primaryPayment = _orderGroupFactory.CreatePayment(cart);

            primaryPayment.PaymentMethodId   = viewModel.SelectedPaymentId;
            primaryPayment.Amount            = _orderGroupCalculator.GetTotal(cart).Amount;
            primaryPayment.PaymentMethodName = PaymentManager.GetPaymentMethod(viewModel.SelectedPaymentId).PaymentMethod[0].Name;

            if (viewModel.UseGiftCard)
            {
                var giftMethod  = PaymentManager.GetPaymentMethodBySystemName("GiftCard", ContentLanguage.PreferredCulture.Name);
                var giftPayment = _orderGroupFactory.CreatePayment(cart);
                giftPayment.PaymentMethodId   = giftMethod.PaymentMethod[0].PaymentMethodId;
                giftPayment.Amount            = viewModel.GiftCardDebitAmt;
                giftPayment.ValidationCode    = viewModel.RedemtionCode;
                giftPayment.PaymentMethodName = giftMethod.PaymentMethod[0].Name;

                PaymentProcessingResult giftPayResult = _paymentProcessor.ProcessPayment(cart, giftPayment, cart.GetFirstShipment());
                if (giftPayResult.IsSuccessful)
                {
                    primaryPayment.Amount -= giftPayment.Amount;
                    cart.AddPayment(giftPayment);
                }
                viewModel.GiftInfoMessage = giftPayResult.Message;
            }

            PaymentProcessingResult payResult = _paymentProcessor.ProcessPayment(cart, primaryPayment, cart.GetFirstShipment());

            if (payResult.IsSuccessful)
            {
                cart.AddPayment(primaryPayment);
                _orderRepository.SaveAsPurchaseOrder(cart);
                _orderRepository.Delete(cart.OrderLink);
            }
            viewModel.MessageOutput = payResult.Message;

            InitializeModel(viewModel);

            return(View("Index", viewModel));
        }
Example #3
0
        private void InitializeModel(PaymentDemoViewModel viewModel)
        {
            ICart cart = _orderRepository.LoadOrCreateCart <ICart>(CustomerContext.Current.CurrentContactId, "Default");

            var shirtRef      = _referenceConverter.GetContentLink("Long Sleeve Shirt White Small_1");
            var suspendersRef = _referenceConverter.GetContentLink("Suspenders_1");

            if (viewModel.Variants == null)
            {
                viewModel.Variants = new List <DefaultVariation>
                {
                    _contentLoader.Get <DefaultVariation>(shirtRef),
                    _contentLoader.Get <DefaultVariation>(suspendersRef)
                };
            }

            viewModel.PayMethods = PaymentManager.GetPaymentMethodsByMarket(_currentMarket.GetCurrentMarket().MarketId.Value).PaymentMethod;
            viewModel.CartItems  = cart.GetAllLineItems();
            viewModel.CartTotal  = cart.GetTotal();

            viewModel.GiftCards       = GiftCardService.GetClientGiftCards("TrainingGiftCard", (PrimaryKeyId)CustomerContext.Current.CurrentContactId);
            viewModel.ShippingMethods = ShippingManager.GetShippingMethodsByMarket(MarketId.Default.Value, false).ShippingMethod.ToList();
        }