public static HotOffersRoot CreateHotOffers()
        {
            var allStock = AllStockExporter2.LoadLocalFile();

            var hotOffers = GetHotOffers(allStock);

            hotOffers.update_time = DateTime.Now;

            if (hotOffers != null)
            {
                //берем только те офферы где три размера или больше
                hotOffers.offers = hotOffers.offers.FindAll(x => x.sizes.Count > 3);

                //сортируем размеры от большой скидки к меншей
                hotOffers.offers = hotOffers.offers.OrderByDescending(x => x.regular_price - x.our_price).ToList();

                SaveJson(hotOffers, _filename);

                return(hotOffers);
            }
            else
            {
                return(null);
            }
        }
Пример #2
0
        public static void Run2_MultiListing()
        {
            var allstock    = AllStockExporter2.LoadLocalFile();
            var fullCatalog = FullCatalog2.LoadLocalFile();

            //костыль. удаляем артикулы с пустыми размерами
            var count = allstock.sneakers.RemoveAll(x => x.sizes.Count == 0);
            //костыль. удаляем артикулы у которых все офферы пустые
            var count2 = allstock.sneakers.RemoveAll(x => x.sizes.Find(y => y.offers.Count > 0) == null);


            _logger.Info("Всего артикулов в фулкаталог: " + fullCatalog.records.Count);
            _logger.Info("Всего артикулов оллсток: " + allstock.sneakers.Count);
            DeleteRussianOffersFromAllStock(allstock);
            _logger.Info("Артикулов в оллсток после удаления предложений из русских магазинов: " + allstock.sneakers.Count);
            _logger.Info("Размеров в оллсток: " + allstock.GetCountSizes());

            var count3 = allstock.sneakers.RemoveAll(x => x.sizes.FindAll(y => y.offers.Count > 0) == null);

            BonanzaRoot bonanza = CreateBonanzaRecords_MultiListing(allstock, fullCatalog);

            _logger.Info("Создано записей бонанзы: " + bonanza.Records.Count);
            bonanza.update_date = DateTime.Now;
            //AddUPC(bonanza);

            SaveJson(bonanza);
            SaveCSV(bonanza);
        }
        public static void Run(int start = 0, int stop = 0, AllStockRoot allStock = null)
        {
            if (allStock == null)
            {
                allStock = AllStockExporter2.LoadLocalFile();
            }

            var hotOffers = GetHotOffers(allStock);

            if (hotOffers != null)
            {
                Post3MaxMarginValueHotOffer(hotOffers, start, stop);
            }
        }
        /// <summary>
        /// беру файл оллстока и создаю xml файл для авито
        /// </summary>
        public static void Run()
        {
            DateTime startTime   = new DateTime(2017, 04, 17, 07, 00, 00, DateTimeKind.Local); //запуск 17 апреля в 7 утра
            var      allstock    = AllStockExporter2.LoadLocalFile();
            var      fullCatalog = FullCatalog2.LoadLocalFile();
            AvitoAds avito       = createAds(allstock, fullCatalog, startTime);

            //удалим все детские кроссы
            avito.AdList.RemoveAll(x => x.Category == "Детская одежда и обувь");

            SaveToJson(avito, FolderName);
            //AvitoAds avito2 = LoadFromJson();
            SaveToXml(avito, FolderName);
            ReplaceChecialCharacterInXml(FolderName);
            UploadXmlToFtp(FolderName, "Avito");
        }
Пример #5
0
        /// <summary>
        /// берем оллсток2, берем фулкаталог
        /// проходимся по оллстоку 2 и для каждого размера создает запись бонанзы
        /// формируем цену и другие данные
        /// в конце проходимся по всему каталогу и добавляем upc
        /// </summary>
        public static void Run()
        {
            var allstock    = AllStockExporter2.LoadLocalFile();
            var fullCatalog = FullCatalog2.LoadLocalFile();

            allstock.sneakers   = allstock.sneakers.FindAll(x => x.category != "kids").ToList();
            fullCatalog.records = fullCatalog.records.FindAll(x => x.category != "kids").ToList();

            BonanzaRoot bonanza = CreateBonanzaRecords(allstock, fullCatalog);

            bonanza.update_date = DateTime.Now;
            //AddUPC(bonanza);

            SaveJson(bonanza);
            SaveCSV(bonanza);
        }
        /// <summary>
        /// Этот метод отправляет n*2 случайных хотофферов (n мужских и n женских)
        /// </summary>
        public static void Run2(int n)
        {
            var allStock = AllStockExporter2.LoadLocalFile();

            var hotOffers = GetHotOffers(allStock);

            if (hotOffers != null)
            {
                //берем только те офферы где три размера или больше
                hotOffers.offers = hotOffers.offers.FindAll(x => x.sizes.Count > 3);

                //сортируем размеры от большой скидки к меншей
                hotOffers.offers = hotOffers.offers.OrderByDescending(x => x.regular_price - x.our_price).ToList();

                var menOffers   = hotOffers.offers.FindAll(x => x.category == "men");
                var womenOffers = hotOffers.offers.FindAll(x => x.category == "women");
                //var nonCategoryOffers = hotOffers.offers.FindAll(x => string.IsNullOrWhiteSpace(x.category));

                //теперь постим в телеграм первые 3 оффера
                for (int i = 0; i < n; i++)
                {
                    //men
                    var rnd   = new Random().Next(menOffers.Count - 1);
                    var offer = menOffers[rnd];
                    if (offer.images[0].Contains("img.sneaker-icon.ru"))
                    {
                        PostPrivateToTelegram(offer);
                        PostPublicToTelegram(offer);
                        PostToTelegramForInsta(offer);
                        System.Threading.Thread.Sleep(5000);
                    }

                    //women
                    rnd   = new Random().Next(womenOffers.Count - 1);
                    offer = womenOffers[rnd];
                    if (offer.images[0].Contains("img.sneaker-icon.ru"))
                    {
                        PostPrivateToTelegram(offer);
                        PostPublicToTelegram(offer);
                        PostToTelegramForInsta(offer);
                        System.Threading.Thread.Sleep(5000);
                    }
                }

                SaveJson(hotOffers, _filename);
            }
        }
Пример #7
0
 public VkExporter()
 {
     Allstock    = AllStockExporter2.LoadLocalFile();
     FullCatalog = FullCatalog2.LoadLocalFile();
     Posting     = new VkPosting();
 }
Пример #8
0
 public static void SortAllStock()
 {
     var allstock = AllStockExporter2.LoadLocalFile();
     //allstock.
     //var sortSneakers = allstock.sneakers.OrderBy(x => x.
 }