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); }
public VendorParserModel ParseAndShow(bool isUpdateCacheFromInternet) { List <string> errors; var list = GetPriceListFromCache(out errors, isUpdateCacheFromInternet); var newSpecsOnly = new VendorParserModel { ProductLineList = list, ErrorList = errors }; return(newSpecsOnly); }