public WithoutPhotoExporter() { Catalog = new FullCatalog(); WithoutPhotoCatalog = new Catalog(); //CheckExistPhoto(); CreateCatalog(); WithoutPhotoCatalog.SaveCatalogToCSV(@"C:\Users\Администратор\YandexDisk\sneaker-icon\Export\Work\withoutphoto.csv"); }
public FullCatalog UpdateLines(FullCatalog catalog, DateTime?date) { if (catalog != null) { brendRepository.AddOrUpdateRange(catalog.Brends); equipmentRepository.AddOrUpdateRange(catalog.Equipments); toolTypeRepository.AddOrUpdateRange(catalog.ToolTypes); } return(GetLines(date)); }
public async Task <FullCatalog> Update(FullCatalog catalog, DateTime?date = null) { var data = JsonConvert.SerializeObject(catalog); var url = $"{httpUrl}/updatelines{GetDate(date)}"; var httpContent = new StringContent(data, Encoding.UTF8, "application/json"); using (var response = await client.PostAsync(url, httpContent)) { var responseDataString = await response.Content.ReadAsStringAsync(); return(JsonConvert.DeserializeObject <FullCatalog>(responseDataString)); } }
private static AllStockRoot CreateAllStock(FullCatalog fullCatalog, ShopCatalogRoot jsonCatalog) { AllStockRoot allstock = new AllStockRoot(); foreach (var jsonMarket in jsonCatalog.markets) { RootParsingObject market = Parsing.Model.RootParsingObject.ReadJsonMarketFromFtp(jsonMarket); if (market != null) { AddMarketToAllStock(market, fullCatalog, allstock, jsonMarket); } } allstock.update_time = DateTime.Now; return(allstock); }
public UPCDB() { var appSettings = ConfigurationManager.AppSettings; var timeDelay = appSettings["upcdbTimeDelaySec"]; _timeDelay = Int32.Parse(timeDelay); _doRequest = 0; _limitRequst = 1; //fullCatalog = new FullCatalog(); string fullCatalogFileName = "FullCatalog.csv"; GetFileFromFtp(fullCatalogFileName, fullCatalogFileName); fullCatalog = new FullCatalog(fullCatalogFileName); GetFileFromFtp(myJsonFileName, myJsonFileName); GetFileFromFtp(_stopListFileName, _stopListFileName); }
public AvitoExporter() { fullCatalog = new FullCatalog(); //records = new List<StockRecord>(); catalog = new Catalog(); string manFileName = @"C:\Users\Администратор\YandexDisk\sneaker-icon\Parsing\discont_msk_kuzminki\man.csv"; string womanFileName = @"C:\Users\Администратор\YandexDisk\sneaker-icon\Parsing\discont_msk_kuzminki\woman.csv"; post_list = new Dictionary <string, string>(); ReadPostList(); ReadStockFromCSV("Мужская", manFileName); ReadStockFromCSV("Женская", womanFileName); LoadImages(); SaveToCSV(); }
public static AllStockRoot Run() { var jsonCatalog = ShopCatalogRoot.ReadFromFtp(); var fullCatalog = new FullCatalog(); AllStockRoot allstock = CreateAllStock(fullCatalog, jsonCatalog); //когда оллсток создан, нужно его прогнать и отсортировать все офферы, чтобы первым был с самой низкой ценой SortOffers(allstock); Program.Logger.Info("Артикулов в фулкаталог: " + fullCatalog.sneakers.Count); Program.Logger.Info("Артикулов в оллсток: " + allstock.sneakers.Count); Program.Logger.Info("Размеров в оллсток: " + allstock.GetCountSizes()); Program.Logger.Info("Офферов в оллсток: " + allstock.GetCountOffers()); //затем нужно прогнать весь оллсток и, там где нет юпс, добавить их из upcdb var folder = Config.GetConfig().DirectoryPathParsing + @"allstock\"; SaveJson(allstock, "allstock.json", folder); return(allstock); }
public Exporter() { catalog = new FullCatalog(); DiscontSamara = new DiscontStock(Config.GetConfig().DiscontStockFilename); DiscontSamara.AddSaleToRecords(); Kuzminki = new DiscontStock(Config.GetConfig().DiscontKuzminkyFilename); DiscontStocks = new List <DiscontStock>(); DiscontStocks.Add(DiscontSamara); //DiscontStocks.Add(Kuzminki); NashStock1 = new NashStock(Config.GetConfig().NashStockFilename); ShopStocks = new List <OnlineShopStock>(); //queens Queens = new OnlineShopStock(QueensParser.NAME, QueensParser.STOCK_FILENAME, QueensParser.CURRENCY); Queens.Marzha = QueensParser.MARZHA; Queens.DeliveryToUSA = QueensParser.DELIVERY_TO_USA; Queens.VatValue = QueensParser.VAT_VALUE; ShopStocks.Add(Queens); //streetbeat StreetBeat = new OnlineShopStock(StreetBeatParser.NAME, StreetBeatParser.STOCK_FILENAME, StreetBeatParser.CURRENCY); StreetBeat.Marzha = StreetBeatParser.MARZHA; StreetBeat.DeliveryToUSA = StreetBeatParser.DELIVERY_TO_USA; StreetBeat.VatValue = StreetBeatParser.VAT_VALUE; ShopStocks.Add(StreetBeat); //einhalb Einhalb = new OnlineShopStock(EinhalbParser.NAME, EinhalbParser.STOCK_FILENAME, EinhalbParser.CURRENCY); Einhalb.Marzha = EinhalbParser.MARZHA; Einhalb.DeliveryToUSA = EinhalbParser.DELIVERY_TO_USA; Einhalb.VatValue = EinhalbParser.VAT_VALUE; ShopStocks.Add(Einhalb); //basketshop BasketShop = new OnlineShopStock(BasketShopParser.NAME, BasketShopParser.STOCK_FILENAME, BasketShopParser.CURRENCY); BasketShop.Marzha = BasketShopParser.MARZHA; BasketShop.DeliveryToUSA = BasketShopParser.DELIVERY_TO_USA; ShopStocks.Add(BasketShop); //sivas Sivas = new OnlineShopStock(SivasParser.NAME, SivasParser.STOCK_FILENAME, SivasParser.CURRENCY); Sivas.Marzha = SivasParser.MARZHA; Sivas.DeliveryToUSA = SivasParser.DELIVERY_TO_USA; ShopStocks.Add(Sivas); //titolo Titolo = new OnlineShopStock(TitoloParser.NAME, TitoloParser.STOCK_FILENAME, TitoloParser.CURRENCY); Titolo.Marzha = TitoloParser.MARZHA; Titolo.DeliveryToUSA = TitoloParser.DELIVERY_TO_USA; Titolo.VatValue = TitoloParser.VAT_VALUE; ShopStocks.Add(Titolo); //sns Sneakersnstuff = new OnlineShopStock(SneakersnstuffParser.NAME, SneakersnstuffParser.STOCK_FILENAME, SneakersnstuffParser.CURRENCY); Sneakersnstuff.Marzha = SneakersnstuffParser.MARZHA; Sneakersnstuff.DeliveryToUSA = SneakersnstuffParser.DELIVERY_TO_USA; Sneakersnstuff.VatValue = SneakersnstuffParser.VAT_VALUE; ShopStocks.Add(Sneakersnstuff); //overkill Overkillshop = new OnlineShopStock(OverkillshopParser.NAME, OverkillshopParser.STOCK_FILENAME, OverkillshopParser.CURRENCY); Overkillshop.Marzha = OverkillshopParser.MARZHA; Overkillshop.DeliveryToUSA = OverkillshopParser.DELIVERY_TO_USA; Overkillshop.VatValue = OverkillshopParser.VAT_VALUE; ShopStocks.Add(Overkillshop); //solehaven Solehaven = new OnlineShopStock(SolehavenParser.NAME, SolehavenParser.STOCK_FILENAME, SolehavenParser.CURRENCY); Solehaven.Marzha = SolehavenParser.MARZHA; Solehaven.DeliveryToUSA = SolehavenParser.DELIVERY_TO_USA; Solehaven.VatValue = SolehavenParser.VAT_VALUE; ShopStocks.Add(Solehaven); //afew Afew = new OnlineShopStock(AfewStoreParser.NAME, AfewStoreParser.STOCK_FILENAME, AfewStoreParser.CURRENCY); Afew.Marzha = AfewStoreParser.MARZHA; Afew.DeliveryToUSA = AfewStoreParser.DELIVERY_TO_USA; Afew.VatValue = AfewStoreParser.VAT_VALUE; ShopStocks.Add(Afew); SuppaStore = new OnlineShopStock(SuppaStoreParser.NAME, SuppaStoreParser.STOCK_FILENAME, SuppaStoreParser.CURRENCY); SuppaStore.Marzha = SuppaStoreParser.MARZHA; SuppaStore.DeliveryToUSA = SuppaStoreParser.DELIVERY_TO_USA; SuppaStore.VatValue = SuppaStoreParser.VAT_VALUE; ShopStocks.Add(SuppaStore); Chmielna = new OnlineShopStock(ChmielnaParser.NAME, ChmielnaParser.STOCK_FILENAME, ChmielnaParser.CURRENCY); Chmielna.Marzha = ChmielnaParser.MARZHA; Chmielna.DeliveryToUSA = ChmielnaParser.DELIVERY_TO_USA; Chmielna.VatValue = ChmielnaParser.VAT_VALUE; ShopStocks.Add(Chmielna); BdgaStore = new OnlineShopStock(BdgastoreParser.NAME, BdgastoreParser.STOCK_FILENAME, BdgastoreParser.CURRENCY); BdgaStore.Marzha = BdgastoreParser.MARZHA; BdgaStore.DeliveryToUSA = BdgastoreParser.DELIVERY_TO_USA; BdgaStore.VatValue = BdgastoreParser.VAT_VALUE; ShopStocks.Add(BdgaStore); AsfaltGold = new OnlineShopStock(AsphaltgoldParser.NAME, AsphaltgoldParser.STOCK_FILENAME, AsphaltgoldParser.CURRENCY); AsfaltGold.Marzha = AsphaltgoldParser.MARZHA; AsfaltGold.DeliveryToUSA = AsphaltgoldParser.DELIVERY_TO_USA; AsfaltGold.VatValue = AsphaltgoldParser.VAT_VALUE; ShopStocks.Add(AsfaltGold); }
// ReSharper disable once RedundantAssignment public static void Main(string[] args) { #if Feanor Logger.Info("Feanor mode!"); args = new[] { "-DownloadImage" }; //args = new string[] { "-afew" }; //args = new string[] { "-bonanza_export" }; //args = new string[] { "-upcdb" }; //args = new string[] { "-nashStockParseCSVinJSONandGoToFTP" }; //args = new string[] { "-basketshop_einhalb_queens" }; #elif DEBUG Logger.Info("Debug mode!"); args = new[] { "-debug" }; //args = new[] { "-snkrs.com" }; //args = new[] { "-ValidateAllShops" }; //args = new[] { "-DbCreate" }; //args = new[] { "-DbController.DownloadImages" }; //args = new[] { "-BonanzaExport3OnlyBonanza" }; //args = new[] { "-BonanzaExport3" }; //args = new[] { "-LoadVkGoods" }; //args = new[] { "-SivasAB" }; //args = new[] { "-PostHotOfferVk" }; //args = new[] { "-SivasAB" }; //args = new[] { "-snsAllBrands" }; //args = new[] { "-OnlyBonanzaExport2" }; //args = new[] { "-BonanzaExport2" }; //args = new[] { "-AvitoNovoslob" }; #else Console.WriteLine("Release mode!"); #endif var startTime = DateTime.Now; if (args.Count() > 0) { Logger.Info("Параметр:" + args[0]); if (args[0] == "-AvitoNovoslob") { //парсим файл дисконта, создаем csv и json файлы //DiscontMskNovoslobParser novoslobParser = new DiscontMskNovoslobParser(); //novoslobParser.Run(); //добавляем инфу в фулкаталог //FullCatalog2.Run(); Logger.Info("FullCatalog2 created"); //подгружаем фотки //FullCatalog2.UpdateFullCatalogImages(); //FullCatalog2.LoadImagesToFullCatalogFromImagesFolder(); Logger.Info("FullCatalog2 images updated"); //делаем фид ля авито AvitoMskNovoslobExporter.Run(); Logger.Info("Avito Feed created"); } if (args[0] == "-SivasAB") { SivasParserAB sivasParserAb = new SivasParserAB(); sivasParserAb.Run(); } if (args[0] == "-snkrs.com") { SnkrsComParserAllBrands snrks = new SnkrsComParserAllBrands(); snrks.Run(); } if (args[0] == "-snsAllBrands") { SneakersnstuffParserAllBrands snsAllBrands = new SneakersnstuffParserAllBrands(); //snsAllBrands.ParseOneSneaker("https://www.sneakersnstuff.com/en/product/25821/reebok-question-lux"); snsAllBrands.Run(); } if (args[0] == "-LoadVkGoods") { var vkExporter = new VkExporter(); vkExporter.Run(); } if (args[0].Equals("-feanor")) { //Bitmap image1 = (Bitmap)Image.FromFile(@"C:\test\test.jpg", true); //var color0 = image1.GetPixel(0, 0); //var color1 = image1.GetPixel(1, 0); //var color2 = image1.GetPixel(0, image1.Height - 1); //var color3 = image1.GetPixel(1, image1.Height - 1); //var blackLine = true; ////string hex = "#FFFFFF"; ////Color _color = System.Drawing.ColorTranslator.FromHtml(hex); //for (var i = 0; i < image1.Width; i++) //{ // var color = image1.GetPixel(i, image1.Height - 1); // if (color.B < 253 && color.G < 253 && color.R < 253) // { // blackLine = false; // } //} //Console.WriteLine("blackLine"); //var vkExporter = new VkExporter(); //vkExporter.Run(); //var id = 798354; //var array = new List<string> //{ // "http://img.sneaker-icon.ru/shops/16/images/860558-001-1.jpg", // "http://img.sneaker-icon.ru/shops/16/images/860558-001-2.jpg", // "http://img.sneaker-icon.ru/shops/16/images/860558-001-3.jpg", // "http://img.sneaker-icon.ru/shops/16/images/860558-001-4.jpg" //}; //var sizeArray = new List<Size> //{ // new Size("brand", "category", "us1", "eu1", "uk1", "cm1", "ru1"), // new Size("brand", "category", "us2", "eu2", "uk2", "cm2", "ru2"), // new Size("brand", "category", "us3", "eu3", "uk3", "cm3", "ru3"), // new Size("brand", "category", "us4", "eu4", "uk4", "cm4", "ru4"), // new Size("brand", "category", "us5", "eu5", "uk5", "cm5", "ru5") //}; //var vkGood = new VkGoodsItem() //{ // Name = "NoName", // Description = "Other Description", // Price = 500, // Images = array, // Sizes = sizeArray //}; //var vk = new VkPosting(); ////var idAdd = vk.AddOrEditVkGoods(vkGood, 798354); //vk.DeleteVkGoods(id); } if (args[0] == "-bonanza_export") { // ReSharper disable once UnusedVariable CreateCatalog createCatalog = new CreateCatalog(); FullCatalog.CleanFullCatalog(); //очищаем каталог от левых артикулов, поправляем названия и бренды. костыль Logger.Info("FullCatalog created"); CurrencyRate currate = new CurrencyRate(); currate.Run(); AllStockExporter exporter = new AllStockExporter(); exporter.CreateAllStockList(); Logger.Info("AllStock created"); BonanzaExporter bonanza = new BonanzaExporter(); bonanza.Run(); Logger.Info("Bonanza created"); TiuExporter tiu = new TiuExporter(); tiu.Run(); Logger.Info("Tiu created"); SneakerIconExporter sneakerIconExporter = new SneakerIconExporter(); sneakerIconExporter.Run(); Logger.Info("Sneaker-icon.ru.csv created"); //FullCatalog2.Run(); //Console.WriteLine("FullCatalog2 created"); //FullCatalog2.PostNewTodayItems(); //AllStockExporter2.Run(); //Console.WriteLine("AllStock2 created"); } if (args[0] == "-BonanzaExport2") { FullCatalog2.Run(); Logger.Info("FullCatalog2 created"); FullCatalog2.UpdateFullCatalogImages(); FullCatalog2.LoadImagesToFullCatalogFromImagesFolder(); Logger.Info("FullCatalog2 images updated"); AllStockExporter2.Run(); Logger.Info("AllStock2 created"); BonanzaExporter2.Run(); Logger.Info("Bonanza2 created"); } if (args[0] == "-OnlyBonanzaExport2") { BonanzaExporter2.Run(); Logger.Info("Bonanza2 created"); } if (args[0] == "-ValidateAllShops") { ValidatorAllBrands.ValidateAllShops(); } if (args[0] == "-DbCreate") { var db = new DbController(); db.Create(); Logger.Info("DB created"); } if (args[0] == "-DbController.DownloadImages") { DbController.DownloadImages(); } if (args[0] == "-BonanzaExport3OnlyBonanza") { BonanzaExporterAllBrands bnnzAllBrands = new BonanzaExporterAllBrands(); bnnzAllBrands.Run(); } if (args[0] == "-BonanzaExport3") { ValidatorAllBrands.ValidateAllShops(); DbController db = new DbController(); db.Create(); Logger.Info("DB created"); DbController.DownloadImages(); BonanzaExporterAllBrands bnnzAllBrands = new BonanzaExporterAllBrands(); bnnzAllBrands.Run(); } if (args[0] == "-sivas_sale_parser") { CurrencyRate currate = new CurrencyRate(); currate.Run(); SivasSaleParser sivasSale = new SivasSaleParser(); sivasSale.Run(); } if (args[0] == "-basketshop") { BasketShopParser basketShopParser = new BasketShopParser(); basketShopParser.Update(); } if (args[0] == "-einhalb") { //BasketShopParser basketShopParser = new BasketShopParser(); EinhalbParser einhalpParser = new EinhalbParser(); //QueensParser queensParser = new QueensParser(); //basketShopParser.Update(); einhalpParser.Update(); //queensParser.Update(); } if (args[0] == "-queens") { //BasketShopParser basketShopParser = new BasketShopParser(); //EinhalbParser einhalpParser = new EinhalbParser(); QueensParser queensParser = new QueensParser(); //basketShopParser.Update(); //einhalpParser.Update(); queensParser.Update(); } if (args[0] == "-basketshop_einhalb_queens") { BasketShopParser basketShopParser = new BasketShopParser(); EinhalbParser einhalpParser = new EinhalbParser(); QueensParser queensParser = new QueensParser(); basketShopParser.Update(); einhalpParser.Update(); queensParser.Update(); } if (args[0] == "-streetbeat") { //парсится 1 минуту StreetBeatParser strbeatParse = new StreetBeatParser(); strbeatParse.Update(); } if (args[0] == "-sneakersnstuff") { //70 минут парсится SneakersnstuffParser sneakerStuff = new SneakersnstuffParser(); sneakerStuff.Run(); } if (args[0] == "-SivasAllBrands") { SivasParserAB siavParserAb = new SivasParserAB(); siavParserAb.Run(); } if (args[0] == "-overkillshop") { //14 минут парсится OverkillshopParser overkillshop = new OverkillshopParser(); overkillshop.Run(); } if (args[0] == "-afew") { AfewStoreParser afew = new AfewStoreParser(); afew.Run(); } if (args[0] == "-suppa") { //7 минут парсится SuppaStoreParser suppa = new SuppaStoreParser(); suppa.Run(); } if (args[0] == "-chmielna") { //3 минуты парсится ChmielnaParser chmielna = new ChmielnaParser(); chmielna.Run(); } if (args[0] == "-viktor") { SivasParser sivas = new SivasParser(); sivas.Run2(); SolehavenParser solehaven = new SolehavenParser(); solehaven.Run(); TitoloParser titolo = new TitoloParser(); titolo.Run2(); BdgastoreParser bdgastore = new BdgastoreParser(); bdgastore.Run(); AsphaltgoldParser asfaltgold = new AsphaltgoldParser(); asfaltgold.Run(); NashStockParser nashStockParser = new NashStockParser(); nashStockParser.Run(); DiscontSamaraParser discont = new DiscontSamaraParser(); discont.Run(); } if (args[0] == "-upcdb") { for (var i = 0; i < 300; i++) { var upcdb = new UPCDB(); upcdb.run3(10); } } if (args[0] == "-UpdateFullCatalogImages") { FullCatalog2.UpdateFullCatalogImages(); FullCatalog2.LoadImagesToFullCatalogFromImagesFolder(); } if (args[0] == "-HotOffers") { //HotOffers.Run(); FullCatalog2.PostNewTodayItems(); HotOffers.Run2(5); } if (args[0] == "-NewToday") { FullCatalog2.PostNewTodayItems(); } if (args[0] == "-DownloadImage") { var imageDownload = new ImageDownload(); imageDownload.Run(); } if (args[0] == "-DownloadImageForStock") { var imageDownload = new ImageDownload(); try { Logger.Debug("Введите номер стока"); var numberString = Console.ReadLine(); Logger.Debug("Номер стока " + numberString); if (numberString == null) { throw new NullReferenceException("numberString = null"); } var number = int.Parse(numberString); imageDownload.RunForStock(number); } catch (Exception e) { Logger.Error(e, "Ошибка при распознавании номера стока"); } } if (args[0] == "-Avito") { AvitoExporter3.Run(); } if (args[0] == "-AvitoDiscontSamaraToSamara") { AvitoDiscontSamaraToSamara.Run(); } if (args[0] == "-PostHotOfferVk") { var rnd = new Random().Next(61); //случайная задержка в минутах Logger.Info("Задержка: " + rnd); Thread.Sleep(rnd * 60 * 1000); HotOffers.PostVkRandomOffer(); } if (args[0] == "-DiscontParsing") { //из файла самарского дисконта делаем лист стокрекорд //csv файл должен быть в формате utf-8 и разделен точкой с запятой DiscontStock dStock = new DiscontStock(); dStock.ParseStockOnHand(Config.GetConfig().DirectoryPath + @"Parsing\discont\Stock On Hand.csv"); dStock.SaveStockToCSV(Config.GetConfig().DirectoryPath + @"Parsing\discont\StockDiscont.csv"); dStock.ParseStockOnHand2(Config.GetConfig().DirectoryPath + @"Parsing\discont\Stock On Hand.csv"); dStock.SaveStockToCSV2(Config.GetConfig().DirectoryPath + @"Parsing\discont\StockDiscont2.csv"); } if (args[0] == "-AllBrandsDownloadImages") { DbController.DownloadImages(); } if (args[0] == "-debug") { var lodkiLarisa = new LarisaLodki(); var lodki = lodkiLarisa.ParseLodki(); //var upwork = new UpworkCarelulu(); //upwork.Run(); //PortfolioMobiInterestComUpworkParser.Run(); //var d = Parser.GetHtmlPagePhantomJs("http://httpbin.org/ip"); //SizeChartAllBrands sizeChartAllBrands = new SizeChartAllBrands(); //sizeChartAllBrands.LoadSizeChartFromFtp(); //ShopValidatorAllBrands validator = new ShopValidatorAllBrands(); //validator.ValidateShop("snkrs.com"); //MyTelegram.PostMessageWaitRelease("test"); //BonanzaExporterAllBrands bnnzAllBrands = new BonanzaExporterAllBrands(); //bnnzAllBrands.Run(); //AvitoDiscontSamaraToSamara.Run(); //ValidatorAllBrands.ValidateAllShops(); //DbController.Update(); //var upcdb = new upcdb(); //upcdb.run2(); //Test.Crawlera(); //Test.Upcdb(); //AllStockExporter2.Run(); //FullCatalog.CleanFullCatalog(); //CreateCatalog createCatalog = new CreateCatalog(); //Console.WriteLine("FullCatalog created"); //FullCatalog.SaveCatalogToJson(); //FullCatalog2.Run(); //FullCatalog2.DeleteDuplicateItems(); //FullCatalog2.UpdateFullCatalogImages(); //NashStockParser nashStockParser = new NashStockParser(); //nashStockParser.Run(); //HotOffers.Run2(1); //FullCatalog2.Run(); //Console.WriteLine("FullCatalog2 created"); //AllStockExporter2.Run(); //Console.WriteLine("AllStock2 created"); //FullCatalog2.PostNewTodayItems(); //AllStockExporter2.TestForDima(); // var imageDownload = new ImageDownload(); //imageDownload.Run(); //Helper.TelegramPost("test message", "-1001116441282"); //AvitoExporter3.SaveToXml(null); //AvitoExporter3.Run(); //BonanzaExporter2.Run(); //BonanzaExporter2.Run2_MultiListing(); //Validator.ValidateAllShops(); //EinhalbParser einhalpParser = new EinhalbParser(); //einhalpParser.Run(); //Test.SortAllStock(); //Test.PostVk(); //FullCatalog2.DetectCategoryFromTitleAndUpdateFullCatalog(); //var hotOffers = HotOffers.CreateHotOffers(); //HotOffers.PostVkRandomOffer(); //Test.LoadVkGoods(); //FullCatalog2.LoadImagesToFullCatalogFromImagesFolder(); //SneakersnstuffParserAllBrands snsAllBrands = new SneakersnstuffParserAllBrands(); //snsAllBrands.ParseOneSneaker("https://www.sneakersnstuff.com/en/product/25821/reebok-question-lux"); //snsAllBrands.Run(); } } else { Logger.Warn("Программа запущена без параметров"); } //SivasParser sivas = new SivasParser(); //sivas.Update(); //TitoloParser titolo = new TitoloParser(); //titolo.Run(); //basketShopParser.Run(); //einhalpParser.Run(); //queensParser.Run(); //strbeatParse.Run(); //sivas.Run(); //DiscontStock dStock = new DiscontStock(); //dStock.ReadStockFromCSV(); //dStock.AddSaleToRecords(); //dStock.SaveStockToCSV(); //из файла кузьминок делает лист стокрекорд //DiscontStock dStock = new DiscontStock(); //dStock.ParseStockOnHand(@"C:\Users\Администратор\YandexDisk\fullCatalogSneaker-icon\Parsing\discont_msk_kuzminki\Stock On Hand.csv"); //dStock.SaveStockToCSV(@"C:\Users\Администратор\YandexDisk\fullCatalogSneaker-icon\Parsing\discont_msk_kuzminki\StockDiscont.csv"); //dStock.ParseStockOnHand2(@"C:\Users\Администратор\YandexDisk\fullCatalogSneaker-icon\Parsing\discont_msk_kuzminki\Stock On Hand.csv"); //dStock.SaveStockToCSV2(@"C:\Users\Администратор\YandexDisk\fullCatalogSneaker-icon\Parsing\discont_msk_kuzminki\StockDiscont2.csv"); //из файла самарского дисконта делаем лист стокрекорд //csv файл должен быть в формате utf-8 и разделен точкой с запятой //DiscontStock dStock = new DiscontStock(); //dStock.ParseStockOnHand(Settings.DIRECTORY_PATH + @"Parsing\discont\Stock On Hand.csv"); //dStock.SaveStockToCSV(Settings.DIRECTORY_PATH + @"Parsing\discont\StockDiscont.csv"); //dStock.ParseStockOnHand2(Settings.DIRECTORY_PATH + @"Parsing\discont\Stock On Hand.csv"); //dStock.SaveStockToCSV2(Settings.DIRECTORY_PATH + @"Parsing\discont\StockDiscont2.csv"); //string StockDiscont2 = @"C:\Users\Администратор\YandexDisk\fullCatalogSneaker-icon\Parsing\discont\StockDiscont2.csv"; //var discont = new DiscontStock(); //discont.ReadStockFromCSV2(StockDiscont2); //bool isTrue = discont.AddStandtoRecords(); //if (isTrue) discont.SaveStockToCSV2(StockDiscont2); //AmazonExporter amazonExporter = new AmazonExporter(); //amazonExporter.run2(); //AmazonExporter amazonExporter = new AmazonExporter(); //amazonExporter.run3(); //AmazonExporter amazonExporter = new AmazonExporter(); //amazonExporter.run3(); //BonanzaExporterAndrew bonanzaAndrew = new BonanzaExporterAndrew(); //bonanzaAndrew.Run(); //AvitoExporter avito = new AvitoExporter(); //AvitoExporter2 avito2 = new AvitoExporter2(); //avito2.Run(); //Test test = new Test(); //WithoutPhotoExporter withoutPhotoExporter = new WithoutPhotoExporter(); //C:\SneakerIcon\repository\SneakerIcon\ConsoleApplication1\Classes\Utils\NetworkUtils.cs //SizeConverter sc = new SizeConverter("8", "Мужская"); //string sizeEUR = sc.sizeEUR; //NashStock nashStock = new NashStock(); //nashStock.ReadStockFromCSV(); //var upcdb = new UPCDB(); //upcdb.run2(); //var addPhotos = new AddPhotos(); //addPhotos.Run(); //ModemReboot.Run(); //SizeConverter.GenerateNikeSizeChart(); if (args.Count() > 0) { Logger.Info("Параметр:" + args[0]); } var endTime = DateTime.Now; var dlit = endTime - startTime; Logger.Info("Начало выполнения программы: " + startTime); Logger.Info("Конец выполения программы: " + endTime); Logger.Info("Длительность выполения, минут: " + dlit.TotalMinutes); Logger.Info("Выполнение программы завершено, нажмите любую клавишу"); #if DEBUG Console.ReadLine(); #elif Feanor Console.ReadLine(); #else #endif }
public FullCatalog UpdateLines([FromBody] FullCatalog fullCatalog, [FromUri] DateTime?date = null) { return(catalogService.UpdateLines(fullCatalog, date)); }
public void AddPhotosInFullCatalog() { //Добавить фотографии с моего сервера в файл каталога (в основном для товаров из дисконта) FullCatalog fullCatalog = new FullCatalog(); foreach (var fullCatalogSneaker in fullCatalog.sneakers) { if (fullCatalogSneaker.images == null || fullCatalogSneaker.images.Count == 0) { bool test = true; } if (fullCatalogSneaker.images.Count == 1) { if (String.IsNullOrWhiteSpace(fullCatalogSneaker.images[0])) { List <string> images = new List <string>(); Console.WriteLine("check " + fullCatalogSneaker.sku); for (int i = 1; i < 10; i++) { string url = "http://80.241.220.50/images2/" + fullCatalogSneaker.sku + "-" + i + ".jpg"; if (NetworkUtils.UrlExists(url)) { images.Add(url); } } if (images.Count > 0) { Console.WriteLine("add " + fullCatalogSneaker.sku); fullCatalogSneaker.images = images; } } } } foreach (var fullCatalogSneaker in fullCatalog.sneakers) { if (fullCatalogSneaker.images == null || fullCatalogSneaker.images.Count == 0) { bool test = true; } if (fullCatalogSneaker.images.Count == 1) { if (String.IsNullOrWhiteSpace(fullCatalogSneaker.images[0])) { List <string> images = new List <string>(); Console.WriteLine("check " + fullCatalogSneaker.sku); for (int i = 1; i < 10; i++) { string url = "http://80.241.220.50/images/" + fullCatalogSneaker.sku + "-" + i + ".jpg"; if (NetworkUtils.UrlExists(url)) { images.Add(url); } } if (images.Count > 0) { Console.WriteLine("add " + fullCatalogSneaker.sku); fullCatalogSneaker.images = images; } } } } fullCatalog.SaveCatalogToCSV(fullCatalog.FileNameCatalog); }
private static void AddMarketToAllStock(RootParsingObject market, FullCatalog fullCatalog, AllStockRoot allstock, Shop jsonMarket) { foreach (var listing in market.listings) { var sneaker = allstock.sneakers.Find(x => x.sku == listing.sku); //если такого кроссовка еще не существует if (sneaker == null) { //добавляем новый кроссовок в оллсток var fullCatalogSneaker = fullCatalog.sneakers.Find(x => x.sku == listing.sku); if (fullCatalogSneaker == null) { Program.Logger.Warn("sku: " + listing.sku + " does not exist in fullcatalog"); } else { sneaker = new AllStockSneaker(); sneaker.sku = listing.sku; sneaker.brand = fullCatalogSneaker.brand; sneaker.category = Helper.ConvertCategoryRusToEng(fullCatalogSneaker.category); sneaker.title = fullCatalogSneaker.title; if (sneaker.sku == "854261-106") { bool test = true; } foreach (var size in listing.sizes) { var sizeAllStock = CreateSize(size, sneaker, listing, market, jsonMarket); if (sizeAllStock != null) { sneaker.sizes.Add(sizeAllStock); } } if (sneaker.sizes.Count > 0) { allstock.sneakers.Add(sneaker); } } } else { /* Если кроссовок не нул, значит он уже есть в оллстоке * Это значит, что нужно брать каждый размер из листинга, проверять, есть ли этот размер уже в этом кроссовке * Если нет, то создавать размер и оффер * Если размер есть, то к этому размеру создавать еще один оффер. Возможно тут же надо отсортировать офферы, чтобы с меньшей ценой был первым * Если размер уже есть, то смотреть есть ли юпс * Если юпс нет, то добавлять его, если есть проверять, одинаковый ли он, если нет, кидать варнинг */ if (sneaker.sku == "854261-106") { bool test = true; } foreach (var size in listing.sizes) { if (size.us == null) { size.us = SizeConverters.SizeConverter.GetSizeUs(sneaker.brand, sneaker.category, size.eu, size.uk, size.cm); } if (size.us == null) { //значит размер левый или его нет в таблице размеров } else { var sizeAllStock = sneaker.sizes.Find(x => x.us == size.us); if (sizeAllStock == null) { //если размера нет, создаем новый размер sizeAllStock = CreateSize(size, sneaker, listing, market, jsonMarket); if (sizeAllStock != null) { sneaker.sizes.Add(sizeAllStock); } } else { //если такой размер есть, то добавляем оффер и проверяем юпс if (sizeAllStock.upc == null && size.upc != null) { sizeAllStock.upc = size.upc; } var offer = CreateOffer(listing, market, jsonMarket); sizeAllStock.offers.Add(offer); } } } } } //throw new NotImplementedException(); }