public checkoutPageItem getCheckoutPageByPageItemAndPageType(titizOto.Models.tbl_page pageItem, checkoutStep pageType, string langCode, string mainCheckoutPageUrl)
        {
            var item = new checkoutPageItem();
            item.name = pageItem.name;
            item.url = langCode + "/" + mainCheckoutPageUrl + "/" + pageItem.url + ".html";
            item.step = pageType;

            return item;
        }
        public void clearDataOnStepAndBindCurrentStep(checkoutStep step)
        {
            this.currentStep = step;

            switch (step)
            {
                case checkoutStep.registerOptions:

                    clearDeliveryData();
                    clearBillingData();
                    clearCargoData();
                    clearPayment();

                    break;

                case checkoutStep.delivery:

                    clearBillingData();
                    clearCargoData();
                    clearPayment();

                    break;

                case checkoutStep.billing:
                    clearCargoData();
                    clearPayment();

                    break;

                case checkoutStep.cargo:
                    clearPayment();

                    break;

            }
        }
        public Tuple<bool, string, checkoutStep> validationOnCurrentStep(titizOto.Models.titizOtoEntities db, checkoutStep step)
        {
            if (this.isCartItemChange)
            {
                return new Tuple<bool, string, checkoutStep>(false, null, checkoutStep.none);
            }

            var formerValidation = returnValidResult();
            var currentValidation = returnValidResult();

            int lastSuccessPage = (int)lastSuccessStep;
            int currentPage = (int)step;

            // Access Validation
            if (currentPage > lastSuccessPage + 1)
            {
                checkoutStep lastAccessStep = (checkoutStep)(lastSuccessPage + 1);
                return new Tuple<bool, string, checkoutStep>(false, null, lastAccessStep);
            }

            switch (step)
            {
                case checkoutStep.delivery:

                    if (!isRegisterOptionsValid())
                    {
                        return new Tuple<bool, string, checkoutStep>(false, null, checkoutStep.registerOptions);
                    }

                    break;

                case checkoutStep.billing:

                    formerValidation = validationOnCurrentStep(db, checkoutStep.delivery);

                    if (!formerValidation.Item1)
                    {
                        return formerValidation;
                    }

                    var deliveryValidation = isDeliveryValid(db);

                    if (!deliveryValidation.Item1)
                    {
                        return new Tuple<bool, string, checkoutStep>(false, deliveryValidation.Item2, checkoutStep.delivery);
                    }

                    break;

                case checkoutStep.cargo:

                    formerValidation = validationOnCurrentStep(db, checkoutStep.billing);

                    if (!formerValidation.Item1)
                    {
                        return formerValidation;
                    }
                    var billingValidation = isBillingValid(db);

                    if (!billingValidation.Item1)
                    {
                        return new Tuple<bool, string, checkoutStep>(false, billingValidation.Item2, checkoutStep.billing);
                    }

                    break;

                case checkoutStep.payment:

                    formerValidation = validationOnCurrentStep(db, checkoutStep.cargo);

                    if (!formerValidation.Item1)
                    {
                        return formerValidation;
                    }
                    var cargoValidation = isCargoValid(db);

                    if (!cargoValidation.Item1)
                    {
                        return new Tuple<bool, string, checkoutStep>(false, cargoValidation.Item2, checkoutStep.cargo);
                    }

                    break;
                case checkoutStep.summary:

                    formerValidation = validationOnCurrentStep(db, checkoutStep.payment);

                    if (!formerValidation.Item1)
                    {
                        return formerValidation;
                    }

                    var paymentValidation = isPaymentValid(db);

                    if (!paymentValidation.Item1)
                    {
                        return new Tuple<bool, string, checkoutStep>(false, paymentValidation.Item2, checkoutStep.payment);
                    }

                    break;

            }

            return returnValidResult();
        }
Beispiel #4
0
 public rightStep(List<checkoutPageItem> stepLinkList, checkoutStep currentStep)
 {
     this.stepLinkList = stepLinkList;
     this.currentStep = currentStep;
 }
        public RedirectResult redirectToStep(checkoutStep step, checkoutProcess checkoutItem, string additionalQuery)
        {
            var redirectPageUrl = redirecToStepUrlRelative(step, checkoutItem);

            if (redirectPageUrl != null)
            {
                return Redirect(redirectPageUrl + additionalQuery);
            }

            return null;
        }
        public string redirecToStepUrlRelative(checkoutStep step, checkoutProcess checkoutItem)
        {
            if (step == checkoutStep.none)
            {
                return returnBasketMainPageRelativeUrl("update=onCheckout");
            }

            var redirectPage = checkoutItem.stepLinkList.Where(a => a.step == step).FirstOrDefault();

            if (redirectPage != null)
            {
                return Url.Content("~/" + redirectPage.url);
            }
            else
            {

                errorSend(new Exception("stepLinkList düzgün gelmiyor."), "", true);
                return null;
            }
        }
 public string redirectToStepFullSiteName(checkoutStep step, checkoutProcess checkoutItem)
 {
     return getSiteNameWithoutSlash(Request) + redirecToStepUrlRelative(step, checkoutItem);
 }
 public RedirectResult redirectToStep(checkoutStep step, checkoutProcess checkoutItem)
 {
     return redirectToStep(step, checkoutItem, null);
 }