Exemplo n.º 1
0
        void LoadSkuPurchasedCount(CartItemWithDetailList eventProductList, string distributorId)
        {
            List <MyHerbalife3.Ordering.ServiceProvider.OrderChinaSvc.SkuOrderedAndPurchased> skuList = new List <MyHerbalife3.Ordering.ServiceProvider.OrderChinaSvc.SkuOrderedAndPurchased>();

            foreach (var x in eventProductList)
            {
                var sku = new MyHerbalife3.Ordering.ServiceProvider.OrderChinaSvc.SkuOrderedAndPurchased
                {
                    SKU      = x.ProductId,
                    Category = "ETO",
                };
                skuList.Add(sku);
            }

            var rslt = MyHerbalife3.Ordering.Providers.China.OrderProvider.GetSkuOrderedAndPurchased(this.Country, distributorId, null, null, skuList);

            foreach (var r in rslt)
            {
                var mList = eventProductList.Where(x => x.ProductId == r.SKU);
                foreach (var m in mList)
                {
                    m.QuantityAlreadyPurchased = r.QuantityPurchased;
                }
            }
        }
        /// <summary>
        ///     The collect all products.
        /// </summary>
        /// <param name="currentCategory">
        ///     The current category.
        /// </param>
        /// <param name="itemList">
        ///     The item list.
        /// </param>
        private void collectAllProducts(bool bShowAllInventory, Category_V02 currentCategory,
                                        List <UIProductInfo> itemList)
        {
            if (currentCategory == null)
            {
                return;
            }
            if (currentCategory.SubCategories != null)
            {
                foreach (Category_V02 sub in currentCategory.SubCategories)
                {
                    collectAllProducts(bShowAllInventory, sub, itemList);
                }
            }

            if (currentCategory.Products != null)
            {
                int sortIndx = 0;
                if (HLConfigManager.Configurations.DOConfiguration.AllowHAP && SessionInfo.IsHAPMode && ShoppingCart.OrderCategory == OrderCategoryType.HSO)
                {
                    itemList.AddRange(
                        (from p in currentCategory.Products
                         where
                         p.TypeOfProduct == ProductType.Product &&
                         checkProductAvailability(bShowAllInventory, p) &&
                         (from s in p.SKUs where s.IsDisplayable select s).Count() > 0
                         select
                         new UIProductInfo(currentCategory.ID, getDefaultSKUImagePath(p), p.DisplayName, p.ID,
                                           getDefaultSKUPrice(p), sortIndx++)).ToList()
                        );
                }
                else
                {
                    if (IsChina && ShoppingCart.OrderCategory == OrderCategoryType.ETO)
                    {
                        string[] words       = null;
                        string   eligibleSKu = string.Empty;
                        var      rsp         = MyHerbalife3.Ordering.Providers.China.OrderProvider.GetEventEligibility(ShoppingCart.DistributorID);
                        if (rsp != null && rsp.IsEligible)
                        {
                            words       = rsp.Remark.Split('|');
                            eligibleSKu = words[words.Length - 2];
                        }
                        SKU_V01 etoSku;
                        AllSKUS.TryGetValue(eligibleSKu, out etoSku);
                        if (etoSku != null)
                        {
                            var skuETO = new MyHerbalife3.Ordering.ServiceProvider.OrderChinaSvc.SkuOrderedAndPurchased
                            {
                                SKU      = etoSku.CatalogItem.StockingSKU.Trim(),
                                Category = "ETO",
                            };
                            var skuList = new List <MyHerbalife3.Ordering.ServiceProvider.OrderChinaSvc.SkuOrderedAndPurchased>();
                            skuList.Add(skuETO);
                            var totalETOCount =
                                Providers.China.OrderProvider.GetSkuOrderedAndPurchased(ShoppingCart.CountryCode, null, null,
                                                                                        null, skuList);
                            var skulimit = Settings.GetRequiredAppSetting("ETOskulimit", string.Empty).Split('|');

                            if (skulimit.Length > 1 && eligibleSKu.Trim().Equals(skulimit[0]) && totalETOCount.Any(x => x.QuantityPurchased >= Convert.ToInt16(skulimit[1]) && x.SKU == etoSku.CatalogItem.StockingSKU.Trim()))
                            {
                                etoSku.CatalogItem.InventoryList.ToList().ForEach(
                                    x =>
                                {
                                    var val = x.Value as WarehouseInventory_V01;
                                    if (val != null)
                                    {
                                        val.QuantityOnHand    = 0;
                                        val.QuantityAvailable = 0;
                                        val.IsBlocked         = true;
                                    }
                                });
                            }
                        }
                        itemList.AddRange(
                            (from p in currentCategory.Products
                             where
                             checkProductAvailability(bShowAllInventory, p) &&
                             (from s in p.SKUs where s.IsDisplayable && s.SKU.Contains(eligibleSKu.Trim()) select s).Count() > 0
                             select
                             new UIProductInfo(currentCategory.ID, getDefaultSKUImagePath(p), p.DisplayName, p.ID,
                                               getDefaultSKUPrice(p), sortIndx++)).ToList()
                            );
                    }
                    else
                    {
                        itemList.AddRange(
                            (from p in currentCategory.Products
                             where
                             checkProductAvailability(bShowAllInventory, p) &&
                             (from s in p.SKUs where s.IsDisplayable select s).Count() > 0
                             select
                             new UIProductInfo(currentCategory.ID, getDefaultSKUImagePath(p), p.DisplayName, p.ID,
                                               getDefaultSKUPrice(p), sortIndx++)).ToList()
                            );
                    }
                }
            }
        }