예제 #1
0
        public string SetVendorPrices(bool isUpdateCacheFromInternet)
        {
            List <string> errors;

            var list = GetPriceListFromCache(out errors, isUpdateCacheFromInternet);


            var newSpecsOnly = new VendorParserModel {
                ProductLineList = list, ErrorList = errors
            };
            string foundArticules = "";
            int    successCounter = 0;

            // Получить все варианты
            // Если вариант есть в прайсе, то выставляем цену и преордер
            // Иначе сбрасываем
            // Апдейдим сразу все

            var productVariantList = _productService.GetProductVariants().ToList();

            foreach (var currentProductVariant in productVariantList)
            {
                var curProductLine = newSpecsOnly.ProductLineList.SingleOrDefault(x => x.Articul == currentProductVariant.Sku);

                if (curProductLine == null)
                {
                    if (currentProductVariant.Price != 0)
                    {
                        currentProductVariant.Price = 0;
                    }

                    continue;
                }

                var price = curProductLine.Price > 5 ? curProductLine.Price : 3;                 // товара дешевле 3 гривен быть не должно
                if (currentProductVariant.Price != price)
                {
                    currentProductVariant.Price = price;
                }

                if (currentProductVariant.AvailableForPreOrder != true)
                {
                    currentProductVariant.AvailableForPreOrder = true;
                }

                successCounter++;
                foundArticules += curProductLine.Articul + ", ";
            }

            if (productVariantList.Count > 0)             // Вызываем сохранение всего контекста (всех вариантов)
            {
                _productService.UpdateProductVariant(productVariantList[0]);
            }

            var msg = "Success for " + successCounter + " from " + newSpecsOnly.ProductLineList.Count();

            mLogger.Debug(msg);

            return(msg);
        }
예제 #2
0
        public VendorParserModel ParseAndShow(bool isUpdateCacheFromInternet)
        {
            List <string> errors;

            var list = GetPriceListFromCache(out errors, isUpdateCacheFromInternet);

            var newSpecsOnly = new VendorParserModel {
                ProductLineList = list, ErrorList = errors
            };

            return(newSpecsOnly);
        }