Esempio n. 1
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            var ocModule = AttachedModules.GetModules(AttachedModules.EModuleType.OrderConfirmation).FirstOrDefault();
            if (ocModule != null)
            {
                var classInstance = (IOrderConfirmation)Activator.CreateInstance(ocModule, null);
                if (classInstance.IsActive && classInstance.CheckAlive() && !string.IsNullOrEmpty(classInstance.FileUserControlOrderConfirmation))
                {
                    Redirect("orderconfirmationmodule.aspx", true);
                }
            }
        }

        var shoppingCart = ShoppingCartService.CurrentShoppingCart;

        PageData = LoadOrderConfirmationData(CustomerSession.CustomerId);

        if (!shoppingCart.CanOrder && (PageData.OrderConfirmationData.ActiveTab != EnActiveTab.FinalTab))
        {
            Redirect("shoppingcart.aspx", true);
        }

        //check current step and save state in db
        var activeT = EnActiveTab.NoTab;

        if (!IsPostBack)
        {
            Enum.TryParse(Request["tab"], true, out activeT);

            if (activeT != PageData.OrderConfirmationData.ActiveTab)
            {
                if (activeT < PageData.OrderConfirmationData.ActiveTab)
                {
                    PageData.OrderConfirmationData.ActiveTab = activeT;
                }
                Redirect(PageData);
            }
        }
        if (PageData.OrderConfirmationData.ActiveTab == EnActiveTab.FinalTab)
        {
            OrderConfirmationService.Delete(CustomerSession.CustomerId);
            LoadOrderConfirmationData(CustomerSession.CustomerId);
        }

        if (PageData.OrderConfirmationData.ActiveTab == EnActiveTab.NoTab)
        {
            //ShowTab(PageData.OrderConfirmationData.UserType == EnUserType.RegistredUser ? EnActiveTab.UserTab : EnActiveTab.DefaultTab);
            //Changed by Evgeni to prevent user registration
            ShowTab(EnActiveTab.UserTab);
        }
        else
        {
            ShowTab(PageData.OrderConfirmationData.ActiveTab);
        }

        SetMeta(new MetaInfo(string.Format("{0} - {1}", Resource.Client_OrderConfirmation_DrawUpOrder, SettingsMain.ShopName)), string.Empty);
    }
        private Order DoCreateOrder()
        {
            var shoppingCart = ShoppingCartService.CurrentShoppingCart;

            if (shoppingCart.GetHashCode() != PageData.OrderConfirmationData.CheckSum || !shoppingCart.HasItems)
            {
                Response.Redirect("shoppingcart.aspx");
                return(null);
            }

            if (PageData.OrderConfirmationData.UserType == EnUserType.JustRegistredUser)
            {
                RegistrationNow();
            }

            if (PageData.OrderConfirmationData.UserType == EnUserType.RegisteredUserWithoutAddress)
            {
                UpdateCustomerContact();
            }

            var order = CreateOrder(shoppingCart);

            SendOrderMail(order, shoppingCart);

            var certificate = shoppingCart.Certificate;

            if (certificate != null)
            {
                certificate.ApplyOrderNumber = order.Number;
                certificate.Used             = true;
                certificate.Enable           = true;

                GiftCertificateService.DeleteCustomerCertificate(certificate.CertificateId);
                GiftCertificateService.UpdateCertificateById(certificate);
            }

            var coupon = shoppingCart.Coupon;

            if (coupon != null && shoppingCart.TotalPrice >= coupon.MinimalOrderPrice)
            {
                coupon.ActualUses += 1;
                CouponService.UpdateCoupon(coupon);
                CouponService.DeleteCustomerCoupon(coupon.CouponID);
            }

            ShoppingCartService.ClearShoppingCart(ShoppingCartType.ShoppingCart, PageData.OrderConfirmationData.Customer.Id);
            ShoppingCartService.ClearShoppingCart(ShoppingCartType.ShoppingCart, CustomerContext.CustomerId);

            ShippingManager.CurrentShippingRates.Clear();

            OrderConfirmationService.Delete(CustomerContext.CustomerId);

            return(order);
        }
Esempio n. 3
0
    private void ShowActiveTab(bool innerPostback)
    {
        switch (PageData.OrderConfirmationData.ActiveTab)
        {
        case EnActiveTab.DefaultTab:
            mvOrderConfirm.SetActiveView(ViewAuthorizationCheck);
            break;

        case EnActiveTab.UserTab:
            FirstStep.UserType          = PageData.OrderConfirmationData.UserType;
            FirstStep.BillingIsShipping = PageData.OrderConfirmationData.BillingIsShipping;
            FirstStep.ShippingContact   = PageData.OrderConfirmationData.ShippingContact;
            FirstStep.BillingContact    = PageData.OrderConfirmationData.BillingContact;
            FirstStep.Customer          = PageData.OrderConfirmationData.Customer;
            mvOrderConfirm.SetActiveView(ViewOrderConfirmationUser);
            break;

        case EnActiveTab.ShippingTab:
            SecondStep.PageData = PageData.OrderConfirmationData;
            mvOrderConfirm.SetActiveView(ViewOrderConfirmationShipping);
            break;

        case EnActiveTab.PaymentTab:
            ThirdStep.PageData = PageData.OrderConfirmationData;
            mvOrderConfirm.SetActiveView(ViewOrderConfirmationPayment);
            break;

        case EnActiveTab.SumTab:
            FourthStep.PageData = PageData.OrderConfirmationData;
            mvOrderConfirm.SetActiveView(ViewOrderConfirmationSum);
            break;

        case EnActiveTab.FinalTab:
            if (!innerPostback)
            {
                var order = DoCreateOrder();
                FifthStep.OrderID = order.OrderID;
                FifthStep.Number  = order.Number;
                ShippingManager.CurrentShippingRates.Clear();
            }
            mvOrderConfirm.SetActiveView(ViewOrderConfirmationFinal);
            OrderConfirmationService.Delete(CustomerSession.CustomerId);
            break;

        default:
            mvOrderConfirm.SetActiveView(ViewAuthorizationCheck);
            break;
        }

        ltSteps.Text = RenderSteps(PageData.OrderConfirmationData.ActiveTab);
    }
        protected void Page_PreLoad(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                var showConfirmButtons = true;
                foreach (var module in AttachedModules.GetModules <IRenderIntoShoppingCart>())
                {
                    var moduleObject = (IRenderIntoShoppingCart)Activator.CreateInstance(module, null);
                    showConfirmButtons &= moduleObject.ShowConfirmButtons;
                }

                if (!showConfirmButtons && !string.Equals(Request["tab"], "FinalTab"))
                {
                    Response.Redirect("shoppingcart.aspx");
                }

                if (OrderConfirmationService.OrderID != 0 && string.Equals(Request["tab"], "FinalTab"))
                {
                    mvOrderConfirm.SetActiveView(ViewOrderConfirmationFinal);
                    StepSuccess.OrderID = OrderConfirmationService.OrderID;
                    OrderConfirmationService.OrderID = 0;
                    return;
                }
            }
            var shoppingCart = ShoppingCartService.CurrentShoppingCart;

            PageData = LoadOrderConfirmationData(CustomerContext.CustomerId);

            if (!shoppingCart.CanOrder && (PageData.OrderConfirmationData.ActiveTab != EnActiveTab.FinalTab))
            {
                Response.Redirect("shoppingcart.aspx");
                return;
            }

            if (PageData.OrderConfirmationData.ActiveTab == EnActiveTab.FinalTab)
            {
                OrderConfirmationService.Delete(CustomerContext.CustomerId);
                LoadOrderConfirmationData(CustomerContext.CustomerId);
            }

            ShowTab(PageData.OrderConfirmationData.ActiveTab);
        }