Ejemplo n.º 1
0
        public static HotOffer GetRandomOffer(HotOffersRoot hotOffers, string category)
        {
            var categoryOffers = hotOffers.offers.FindAll(x => x.category == category);
            var rnd            = new Random().Next(categoryOffers.Count - 1);

            return(categoryOffers[rnd]);
        }
Ejemplo n.º 2
0
        private static void SaveJson(HotOffersRoot json, string filename)
        {
            var folder        = Config.GetConfig().DirectoryPathParsing + @"HotOffers\";
            var localFileName = folder + filename;
            //сохраняем на яндекс.диск файл
            var textJson = JsonConvert.SerializeObject(json);

            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 = "HotOffers" + "/" + filename;

            Helper.LoadFileToFtp(localFileName, ftpFileName, ftpHost, ftpUser, ftpPass);
        }
Ejemplo n.º 3
0
        private static void Post3MaxMarginValueHotOffer(HotOffersRoot hotOffers, int start, int stop)
        {
            //берем только те офферы где три размера или больше
            hotOffers.offers = hotOffers.offers.FindAll(x => x.sizes.Count > 3);

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

            //теперь постим в телеграм первые 3 оффера
            for (int i = start; i <= stop; i++)
            {
                var offer = hotOffers.offers[i];
                if (offer.images[0].Contains("img.sneaker-icon.ru"))
                {
                    PostPrivateToTelegram(offer);
                    PostPublicToTelegram(offer);
                }
            }

            SaveJson(hotOffers, "HotOffersMaxMargin.json");
        }
Ejemplo n.º 4
0
        private static HotOffersRoot GetHotOffers(AllStockRoot allStock)
        {
            /* Как определить лучшее предолжение? Горячий пирожок? Как найти самые большие скидки в нашей базе данных?
             * Я думаю что для нас выгодными будут предложения, которые с учетом доставки и ват будут на 30% или даже дешевле чем ритейл цена.
             * Что такое горячий пирожок? Это артикул, у которого есть несколько размеров, удовлетворяющих этому условию
             * Что мы заносим в пирожок?
             * - артикул,
             * - цену себестоимости,
             * - размеры которые попадают под это условия.
             *  - на каждый размер:
             *   - ссылка на магазин, где можно купить по этой цене данный размер
             *   - ссылки на изображения с нашего сервака (несколько изображений)
             *   - цена этого размера
             * - максимальную цену среди всех размеров (какие-то размеры дешевле, какие-то дороже
             * чтобы определить ритейл цену, берем среднюю цену без учета скидки всех размеров всех офферов
             */

            double          minMargin      = MIN_NEED_MARGIN; //минимальная маржа в долларах с пирожка. То есть минимальная стоимость разницы между ритейл ценой и себест. с доставкой и вычетом ват
            double          minSalePercent = 0.3;             //минимальная скидка в процентах
            var             myHotOffers    = new HotOffersRoot();
            FullCatalogRoot fullCatalog    = FullCatalog2.LoadFullCatalogFromFtp();

            foreach (var sneaker in allStock.sneakers)
            {
                var hOffer = GetHotOfferFromAllStockSneaker(sneaker, fullCatalog, minMargin, minSalePercent);
                if (hOffer != null)
                {
                    myHotOffers.offers.Add(hOffer);
                }
            }

            if (myHotOffers.offers.Count > 0)
            {
                return(myHotOffers);
            }
            else
            {
                return(null);
            }
        }