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 List<checkoutPageItem> getCheckoutStepList(titizOto.Models.titizOtoEntities db, int langId, string langCode)
        {
            List<checkoutPageItem> list = new List<checkoutPageItem>();

            pageShared ps = new pageShared(db);
            checkoutPageItem item = null;

            int[] pageTypeList = new int[] { (int)pageType.checkoutRegisterStatu, (int)pageType.checkoutDelivery, (int)pageType.checkoutBilling, (int)pageType.checkoutCargo, (int)pageType.checkoutPayment, (int)pageType.checkoutSummary, (int)pageType.checkoutMain, (int)pageType.checkoutComplete, (int)pageType.checkoutErrorProcess };

            var pageList = db.tbl_page.Where(a => pageTypeList.Contains(a.pageTypeId) && a.langId == langId).ToList();
            var mainCheckoutPage = pageList.Where(a => a.pageTypeId == (int)pageType.checkoutMain).FirstOrDefault();

            // register Statu
            var pageItem = pageList.Where(a => a.pageTypeId == (int)pageType.checkoutRegisterStatu).FirstOrDefault();
            if (pageItem != null)
            {
                item = getCheckoutPageByPageItemAndPageType(pageItem, checkoutStep.registerOptions, langCode, mainCheckoutPage.url);
                list.Add(item);
            }

            // deliverty
            pageItem = pageList.Where(a => a.pageTypeId == (int)pageType.checkoutDelivery).FirstOrDefault();
            if (pageItem != null)
            {
                item = getCheckoutPageByPageItemAndPageType(pageItem, checkoutStep.delivery, langCode, mainCheckoutPage.url);
                list.Add(item);
            }

            // billing
            pageItem = pageList.Where(a => a.pageTypeId == (int)pageType.checkoutBilling).FirstOrDefault();
            if (pageItem != null)
            {
                item = getCheckoutPageByPageItemAndPageType(pageItem, checkoutStep.billing, langCode, mainCheckoutPage.url);
                list.Add(item);
            }

            // cargo
            pageItem = pageList.Where(a => a.pageTypeId == (int)pageType.checkoutCargo).FirstOrDefault();
            if (pageItem != null)
            {
                item = getCheckoutPageByPageItemAndPageType(pageItem, checkoutStep.cargo, langCode, mainCheckoutPage.url);
                list.Add(item);
            }

            // paymentOptions
            pageItem = pageList.Where(a => a.pageTypeId == (int)pageType.checkoutPayment).FirstOrDefault();
            if (pageItem != null)
            {
                item = getCheckoutPageByPageItemAndPageType(pageItem, checkoutStep.payment, langCode, mainCheckoutPage.url);
                list.Add(item);
            }

            // summary
            pageItem = pageList.Where(a => a.pageTypeId == (int)pageType.checkoutSummary).FirstOrDefault();
            if (pageItem != null)
            {
                item = getCheckoutPageByPageItemAndPageType(pageItem, checkoutStep.summary, langCode, mainCheckoutPage.url);
                list.Add(item);
            }

            // Important Error
            pageItem = pageList.Where(a => a.pageTypeId == (int)pageType.checkoutErrorProcess).FirstOrDefault();
            if (pageItem != null)
            {
                item = getCheckoutPageByPageItemAndPageType(pageItem, checkoutStep.error, langCode, mainCheckoutPage.url);
                list.Add(item);
            }

            // Complete
            pageItem = pageList.Where(a => a.pageTypeId == (int)pageType.checkoutComplete).FirstOrDefault();
            if (pageItem != null)
            {
                item = getCheckoutPageByPageItemAndPageType(pageItem, checkoutStep.complete, langCode, mainCheckoutPage.url);
                list.Add(item);
            }

            return list;
        }
Esempio n. 3
0
        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();
        }
Esempio n. 4
0
        private Tuple<bool, string> isPaymentValid(titizOto.Models.titizOtoEntities db)
        {
            switch (this.paymentOptionChoose)
            {
                case paymentOption.noAnswer:
                    return new Tuple<bool, string>(false, null);

                case paymentOption.transfer:

                    if (this.transferInfo != null)
                    {
                        var eftItem = db.tbl_bankEft.Where(a => a.bankEftId == this.transferInfo.selectedTransferId).FirstOrDefault();

                        if (eftItem != null)
                        {
                            return new Tuple<bool, string>(true, null);
                        }
                    }

                    return new Tuple<bool, string>(false, null);

                case paymentOption.creditCard:

                    if (this.cardInfo != null)
                    {
                        checkoutShared cs = new checkoutShared(db);
                        var cardInfoValidation = cs.isCardInfoValid(this.cardInfo);
                        return cardInfoValidation;
                    }

                    break;

            }

            return new Tuple<bool, string>(false, null);
        }
Esempio n. 5
0
 /// <summary>
 /// bool - isValid , string - Message , string - redirectStep
 /// </summary>
 /// <returns></returns>
 public Tuple<bool, string, checkoutStep> validationOnCurrentStep(titizOto.Models.titizOtoEntities db)
 {
     return validationOnCurrentStep(db, this.currentStep);
 }
Esempio n. 6
0
        public Tuple<bool, string> isDeliveryValid(titizOto.Models.titizOtoEntities db)
        {
            HelperSite.Shared.addressShared ads = new HelperSite.Shared.addressShared(db);

            // Unregistered User
            if (!cartItem.isRegisteredUser)
            {
                // Validate Track Info, name,surname,email
                var validateTrackInfo = ads.isValidTrackData(this.trackInfo);

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

                // Validate Address
                var addressValidation = ads.isValidAddress(this.deliveryAddress);

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

            }
            else  // Registered User
            {
                var addressItem = ads.getAddressById(this.deliveryAddressId);

                if (addressItem == null || addressItem.statu == false)
                {
                    return new Tuple<bool, string>(false, lang.checkoutDeliveryRequired);
                }

            }

            return new Tuple<bool, string>(true, null);
        }
Esempio n. 7
0
 public Tuple<bool, string> isCargoValid(titizOto.Models.titizOtoEntities db)
 {
     if (db.tbl_cargo.Where(a => a.statu).Any(a => a.cargoId == this.cargoId))
     {
         return new Tuple<bool, string>(true, null);
     }
     else
     {
         return new Tuple<bool, string>(false, null);
     }
 }
Esempio n. 8
0
        public Tuple<bool, string> isBillingValid(titizOto.Models.titizOtoEntities db)
        {
            HelperSite.Shared.addressShared ads = new HelperSite.Shared.addressShared(db);

            // Unregistered User
            if (!cartItem.isRegisteredUser)
            {
                // Validate Address
                var addressValidation = ads.isValidAddress(this.billingAddress);

                if (!addressValidation.Item1)
                {
                    return addressValidation;
                }
            }
            else
            {
                var addressItem = ads.getAddressById(this.billingAddressId);

                if (addressItem == null || addressItem.statu == false)
                {
                    return new Tuple<bool, string>(false, lang.checkoutDeliveryRequired);
                }

            }

            return new Tuple<bool, string>(true, null);
        }
Esempio n. 9
0
        public string getAddressHtml(tbl_address addressItem, AddressHtmlType addressType, titizOto.Areas.radmin.Controllers.OrderController helperController)
        {
            if (addressItem != null)
            {

                switch (addressType)
                {
                    case AddressHtmlType.agreement:
                        var item = getAddressAccountTemplate(addressItem);
                        return item.content;

                    case AddressHtmlType.mail:
                    case AddressHtmlType.orderDetail:

                        return helperController.RenderRazorViewToString("AddressMailHtml", addressItem);

                    case AddressHtmlType.adminOrderDetail:
                        return helperController.RenderRazorViewToString("AddressAdminHtml", addressItem);

                }

            }

            return "";
        }