private static void UpdateFromOneMarket(Model.FullCatalog.FullCatalogRoot fullCatalogJson, Parsing.Model.RootParsingObject jsonMarket, ShopCatalogRoot shopCatalog, out int addedCount)
 {
     addedCount = 0;
     foreach (var listing in jsonMarket.listings)
     {
         var fcSneaker = fullCatalogJson.records.Find(x => x.sku.ToUpper() == listing.sku.ToUpper());
         if (fcSneaker == null)
         {
             //если фулкаталогсникер нул, значит этого кроссовка еще нет в фулкаталоге и надо его добавить
             var fcRecord = CreateFullCatalogRecordFromListing(listing, jsonMarket, shopCatalog);
             if (fcRecord != null)
             {
                 fullCatalogJson.records.Add(fcRecord);
                 addedCount++;
             }
             else
             {
                 //значит ошибка какая-то
                 bool test = true;
             }
         }
         else
         {
             //если кросс уже существуюет то смотрим что есть в листинге, если есть данные для обновления то обновляем их в кроссовке.
             //проверить, сохранятся ли данные обновления в фулкаталоге, потому что передаю просто листинг а не весь каталог
             UpdateSneaker(fcSneaker, listing);
         }
     }
 }
        public static void AddNewSneakersFromAllStores()
        {
            Model.FullCatalog.FullCatalogRoot fullCatalogJson = FullCatalog2.LoadFullCatalogFromFtp();
            Program.Logger.Info("Items without category: " + CountItemsWithoutCategory(fullCatalogJson));
            Program.Logger.Info("Items without Image: " + CountItemsWithoutImages(fullCatalogJson));

            var shopCatalog = Model.ShopCatalogModel.ShopCatalogRoot.ReadFromFtp();

            Program.Logger.Info("Update FullCatalog...");
            Update(fullCatalogJson, shopCatalog);
            Program.Logger.Info("Items without category: " + CountItemsWithoutCategory(fullCatalogJson));
            Program.Logger.Info("Items without Image: " + CountItemsWithoutImages(fullCatalogJson));
            SaveFullCatalogToFtp(fullCatalogJson);
        }
예제 #3
0
        public static void SaveCatalogToJson()
        {
            var fullCatalog = new FullCatalog();
            var sneakers    = fullCatalog.sneakers;

            var jsonFullCatalog = new Model.FullCatalog.FullCatalogRoot();

            foreach (var sneaker in sneakers)
            {
                var record = new Model.FullCatalog.FullCatalogRecord();
                record.sku         = sneaker.sku;
                record.brand       = sneaker.brand;
                record.title       = sneaker.title;
                record.color       = sneaker.color;
                record.collection  = sneaker.collection;
                record.category    = Helper.ConvertCategoryRusToEng(sneaker.category);
                record.sex         = Helper.ConvertSexRusToEng(sneaker.sex);
                record.height      = sneaker.height;
                record.destination = sneaker.destination;
                record.description = sneaker.description;
                record.link        = sneaker.link;
                record.images      = sneaker.images;
                record.type        = sneaker.type;
                jsonFullCatalog.records.Add(record);
            }
            jsonFullCatalog.update_time = DateTime.Now;

            var folder        = "FullCatalog";
            var filename      = "FullCatalog.json";
            var localFileName = Config.GetConfig().DirectoryPathParsing + folder + @"\" + filename;
            //сохраняем на яндекс.диск файл
            var textJson = JsonConvert.SerializeObject(jsonFullCatalog);

            System.IO.File.WriteAllText(localFileName, textJson);

            ////подгружаем из конфига данные фтп
            var appSettings = System.Configuration.ConfigurationManager.AppSettings;
            var ftpHost     = appSettings["ftpHostSneakerIcon"];
            var ftpUser     = appSettings["ftpUserSneakerIcon"];
            var ftpPass     = appSettings["ftpPassSneakerIcon"];

            ////загружаем на ftp файл
            var ftpFileName = folder + "/" + filename;

            Helper.LoadFileToFtp(localFileName, ftpFileName, ftpHost, ftpUser, ftpPass);

            //throw new NotImplementedException();
        }
        private static void Update(Model.FullCatalog.FullCatalogRoot fullCatalogJson, Model.ShopCatalogModel.ShopCatalogRoot shopCatalog)
        {
            int addedSneakersCount = 0;
            int numMarket          = 1;

            foreach (var market in shopCatalog.markets)
            {
                var jsonMarket = Parsing.Model.RootParsingObject.ReadJsonMarketFromFtp(market);
                if (jsonMarket != null) //если нул значит магазин еще не добавлен
                {
                    Program.Logger.Info("Update market...");
                    int addedCount = 0;
                    UpdateFromOneMarket(fullCatalogJson, jsonMarket, shopCatalog, out addedCount);
                    addedSneakersCount += addedCount;
                    Program.Logger.Info(jsonMarket.market_info.name + ": Updated market complete. Added sneakers: " + addedCount);
                }
            }
            Program.Logger.Info(numMarket + ". Update FullCatalog complete. Items count: " + fullCatalogJson.records.Count + ". Added items:" + addedSneakersCount);
            fullCatalogJson.update_time = DateTime.Now;
        }