protected void Checkout_OnClick(object sender, EventArgs e)
        {
            var name    = this.Name.Text;
            var address = this.Address.Text;
            var phone   = this.Phone.Text;

            var args = new CheckoutEventArgs(name, address, phone);

            this.MyCheckout?.Invoke(this, args);

            if (this.Model.IsCheckoutSuccessful)
            {
                this.Response.Redirect("~/ShoppingCart/OrderFinished");
            }
            else
            {
                this.ErrorMessage.Text = "Something went wrong, please try again";
            }
        }
        /// <summary>
        /// Records the redemption of a coupon offer.
        /// </summary>
        /// <param name="sender">
        /// The sender.
        /// </param>
        /// <param name="e">
        /// The e.
        /// </param>
        private void CheckoutPaymentManagerBaseOnFinalizing(CheckoutPaymentManagerBase sender, CheckoutEventArgs<IPaymentResult> e)
        {
            var invoice = e.Item.Invoice;

            // get the collection of redemptions to be record
            var visitor = new CouponRedemptionLineItemVisitor(invoice.CustomerKey);
            invoice.Items.Accept(visitor);

            if (!visitor.Redemptions.Any()) return;

            if (MerchelloContext.Current != null)
            {
                ((ServiceContext)MerchelloContext.Current.Services).OfferRedeemedService.Save(visitor.Redemptions);
            }
            else
            {
                LogHelper.Debug<CouponRedemptionEventHandler>("MerchelloContext was null.  Could not record coupon redemption.");
            }
        }
        public void TestViewMyCheckout_ShouldSetViewModelIsCheckoutSuccessfullToTrue(string name, string address, string phoneNumber)
        {
            var mockedView = new Mock <ICheckoutView>();

            mockedView.Setup(v => v.Model).Returns(new CheckoutViewModel());

            var mockedUserService            = new Mock <IUserService>();
            var mockedAuthenticationProvider = new Mock <IAuthenticationProvider>();
            var mockedViewModelFactory       = new Mock <IViewModelFactory>();
            var mockedCart = new Mock <IShoppingCart>();

            var checkoutPresenter = new CheckoutPresenter(mockedView.Object,
                                                          mockedAuthenticationProvider.Object,
                                                          mockedUserService.Object,
                                                          mockedViewModelFactory.Object,
                                                          mockedCart.Object);

            var args = new CheckoutEventArgs(name, address, phoneNumber);

            mockedView.Raise(v => v.MyCheckout += null, args);

            Assert.IsTrue(mockedView.Object.Model.IsCheckoutSuccessful);
        }
        public void TestViewMyCheckout_ShouldCallCartFinishOrder(string name, string address, string phoneNumber)
        {
            var mockedView = new Mock <ICheckoutView>();

            mockedView.Setup(v => v.Model).Returns(new CheckoutViewModel());

            var mockedUserService            = new Mock <IUserService>();
            var mockedAuthenticationProvider = new Mock <IAuthenticationProvider>();
            var mockedViewModelFactory       = new Mock <IViewModelFactory>();
            var mockedCart = new Mock <IShoppingCart>();

            var checkoutPresenter = new CheckoutPresenter(mockedView.Object,
                                                          mockedAuthenticationProvider.Object,
                                                          mockedUserService.Object,
                                                          mockedViewModelFactory.Object,
                                                          mockedCart.Object);

            var args = new CheckoutEventArgs(name, address, phoneNumber);

            mockedView.Raise(v => v.MyCheckout += null, args);

            mockedCart.Verify(c => c.FinishOrder(name, address, phoneNumber), Times.Once);
        }
Beispiel #5
0
        /// <summary>
        /// The checkout payment manager base on finalizing.
        /// </summary>
        /// <param name="sender">
        /// The sender.
        /// </param>
        /// <param name="e">
        /// The e.
        /// </param>
        private void CheckoutPaymentManagerBaseOnFinalizing(CheckoutPaymentManagerBase sender, CheckoutEventArgs <IPaymentResult> e)
        {
            var result = e.Item;

            result.Invoice.AuditCreated();

            if (result.Payment.Success)
            {
                // Reset the Customer's CheckoutManager
                e.Customer.Basket().GetCheckoutManager().Reset();

                if (result.Invoice.InvoiceStatusKey == Core.Constants.InvoiceStatus.Paid)
                {
                    result.Payment.Result.AuditPaymentCaptured(result.Payment.Result.Amount);
                }
                else
                {
                    result.Payment.Result.AuditPaymentAuthorize(result.Invoice);
                }
            }
            else
            {
                result.Payment.Result.AuditPaymentDeclined();
            }
        }
        /// <summary>
        /// The checkout payment manager base on finalizing.
        /// </summary>
        /// <param name="sender">
        /// The sender.
        /// </param>
        /// <param name="e">
        /// The e.
        /// </param>
        private void CheckoutPaymentManagerBaseOnFinalizing(CheckoutPaymentManagerBase sender, CheckoutEventArgs<IPaymentResult> e)
        {
            var result = e.Item;

            result.Invoice.AuditCreated();

            if (result.Payment.Success)
            {
                // Reset the Customer's CheckoutManager
                e.Customer.Basket().GetCheckoutManager().Reset();

                if (result.Invoice.InvoiceStatusKey == Core.Constants.DefaultKeys.InvoiceStatus.Paid)
                {
                    result.Payment.Result.AuditPaymentCaptured(result.Payment.Result.Amount);
                }
                else
                {
                    result.Payment.Result.AuditPaymentAuthorize(result.Invoice);
                }
            }
            else
            {
                result.Payment.Result.AuditPaymentDeclined();
            }
        }
Beispiel #7
0
        /// <summary>
        /// Records the redemption of a coupon offer.
        /// </summary>
        /// <param name="sender">
        /// The sender.
        /// </param>
        /// <param name="e">
        /// The e.
        /// </param>
        private void CheckoutPaymentManagerBaseOnFinalizing(CheckoutPaymentManagerBase sender, CheckoutEventArgs <IPaymentResult> e)
        {
            var invoice = e.Item.Invoice;

            // get the collection of redemptions to be record
            var visitor = new CouponRedemptionLineItemVisitor(invoice.CustomerKey);

            invoice.Items.Accept(visitor);

            if (!visitor.Redemptions.Any())
            {
                return;
            }

            if (MerchelloContext.Current != null)
            {
                ((ServiceContext)MerchelloContext.Current.Services).OfferRedeemedService.Save(visitor.Redemptions);
            }
            else
            {
                LogHelper.Debug <CouponRedemptionEventHandler>("MerchelloContext was null.  Could not record coupon redemption.");
            }
        }