/// <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);
                }
            }
        }
Пример #2
0
        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);
            }
        }