/// <summary> /// Удалить непереведенные дубли переводов в ВК /// </summary> public static void DeleteUntranslatedProductsHavingTranslation(ProductVKExporter vke) { Comparator cb = new Comparator(); // из БД получаем список всех артикулов, названий на англ, названий на рус foreach (Product prodDB in db.Products) { // в вкшном массиве ищем товары, включающие этот артикул, находим рус товар и англ товар по переводу этого товара в БД List <MarketEntity> goodsOfSameSKU = vke.ProductList.Where(p => p.Description.Contains( string.Format("(артикул {0})", prodDB.artikul))).ToList(); MarketEntity rusProd = new MarketEntity(); MarketEntity engProd = new MarketEntity(); bool rusFound = false, engFound = false; if (goodsOfSameSKU.Count > 1) { foreach (MarketEntity sameSKUgood in goodsOfSameSKU) { Console.WriteLine("Artikul {0}, Title {1} ", prodDB.artikul, sameSKUgood.Title); // ищем в бд переводы этого товара List <Translation> transOfThisProd = db.GetTranslationsOfProduct(prodDB.title); // среди переводов этого товара находим с таким же названием как товар в ВК foreach (Translation tranOfThisProd in transOfThisProd) { //(t => t.title == sameSKUgood.Title); if (tranOfThisProd.title == sameSKUgood.Title) //if(transOfThisProd != null) { rusProd = sameSKUgood; rusFound = true; Logger.Logger.Trace("Artikul {0}, Title Rus {1}", prodDB.artikul, rusProd.Title); } else { Logger.Logger.ErrorLog("{0} =/= {1}", tranOfThisProd.title, sameSKUgood.Title); } } if (prodDB.title.Replace("&", "and") == sameSKUgood.Title.Replace("&", "and")) { engProd = sameSKUgood; engFound = true; Logger.Logger.Trace("Artikul {0}, Title Eng {1}", prodDB.artikul, engProd.Title); } else { Logger.Logger.ErrorLog("{0} =/= {1}", prodDB.title, sameSKUgood.Title); } //if(transOfThisProd.Any(t => t.title == )) } } if (rusFound && engFound) { // если нашелся рус товар и англ товар, то удаляем англ товар Logger.Logger.SuccessLog("Remove from VK {0}", engProd.Title); vke.DeleteProduct(engProd.ID); } } }
public void AddProductToAlbum(string titleProduct, long ProductID, string titleAlbum, string imageFileName) { string imageFilePath = GetImageFilePath(imageFileName); //if (AlbumList.Where(x => x.Title == titleAlbum).Count() >= 2) // если в этот заход подборку еще не апдейтили, то удаляем все ее копии /* // отменяем апокалипсис foreach (var alb in AlbumList.Where(x => x.Title == titleAlbum && !x.isUpdated)) { Logger.Logger.SuccessLog("удаляем альбом {0} {1}", alb.ID, alb.Title); vk.Markets.DeleteAlbum(-GroupID, alb.ID); } AlbumList.RemoveAll(x => x.Title == titleAlbum && !x.isUpdated); */ //AlbumList = new List<MarketEntity>(); //long AlbumID = AlbumList.First(x => x.Title == titleAlbum).ID; //vk.Markets.AddToAlbum(-GroupID, ProductID, new[] { AlbumID }); //else // если подборки еще нету, заводим if (AlbumList.Where(x => x.Title == titleAlbum).Count() == 0) { long photoID = UploadImage(imageFilePath); bool isMainAlbum = (titleAlbum == mainAlbumTitle); if(isMainAlbum) { } long AlbumID = vk.Markets.AddAlbum(-GroupID, titleAlbum, photoID, isMainAlbum); Logger.Logger.SuccessLog("Добавлен альбом {0}", titleAlbum); Logger.Logger.SuccessLog("добавляем в заведенный альбом {0} {1}", AlbumID, titleAlbum); vk.Markets.AddToAlbum(-GroupID, ProductID, new[] { AlbumID }); MarketEntity alb = new MarketEntity(AlbumID, titleAlbum, "", photoID); alb.isUpdated = true; AlbumList.Add(alb); } else // если подборка уже есть, заводим в нее товар { long AlbumID = AlbumList.First(x => x.Title == titleAlbum).ID; vk.Markets.AddToAlbum(-GroupID, ProductID, new[] { AlbumID }); Logger.Logger.SuccessLog("добавляем в готовый альбом {0} {1}", AlbumID, titleAlbum); } }