private void SaveToCSV() { string filename = @"C:\SneakerIcon\avito.csv"; string filenameCatalog = filename; //string filenameCatalog = @"C:\SneakerIcon\CSV\StreetBeat\CatalogStreetBeat.csv"; var sneakers = this.catalog.sneakers; int count = sneakers.Count; List <AvitoRecord> avitoRecordList = new List <AvitoRecord>(); for (int i = 0; i < count; i++) { var sneaker = sneakers[i]; var fullCatalogSneaker = fullCatalog.GetSneakerFromSKU(sneaker.sku); //title if (fullCatalogSneaker == null) { Program.Logger.Info("is not exist in catalog"); //record.title = fullCatalogSneaker.title + " " + fullCatalogSneaker.sku; } else { //работаем только с объявлениями которые есть в каталоге AvitoRecord record = new AvitoRecord(); record.login = "******"; record.pass = "******"; record.phone = "88002001121"; if (fullCatalogSneaker.category == "Мужская") { record.category = "Москва -> Одежда, обувь, аксессуары -> Мужская одежда -> Обувь -> 42р"; } else if (fullCatalogSneaker.category == "Женская") { record.category = "Москва -> Одежда, обувь, аксессуары -> Женская одежда -> Обувь -> 37р"; } else { Program.Logger.Warn("Wrond category. sku:" + sneaker.sku); } //title record.title = fullCatalogSneaker.title + " " + sneaker.sku; //sku record.sku = sneaker.sku; //price record.price = (sneaker.price + 1000).ToString(); //description string desc = fullCatalogSneaker.type + " " + fullCatalogSneaker.title + "\r\n"; desc += "Артикул: " + sneaker.sku + "\r\n"; desc += "Размеры:\r\n"; foreach (var size in sneaker.sizes) { size.GetAllSizesFromUS(fullCatalogSneaker, size.sizeUS); desc += "- " + size.allSize + " / " + size.sizeRU + " RUS\r\n"; } //desc += "\r\n"; desc += "По поводу других размеров звоните или пишите в сообщения Авито. Возможно они также есть в наличии\r\n"; desc += "------------------------\r\n"; desc += "Вся обувь оригинальная, новая, в упаковке\r\n"; desc += "------------------------\r\n"; desc += "БЕСПЛАТНАЯ доставка по Москве в день заказа или на следующий рабочий день.\r\n"; desc += "------------------------\r\n"; desc += "Доставка по России 2-3 дня компанией СДЭК.\r\n"; desc += "Стоимость доставки по РФ - 300 рублей.\r\n"; desc += "Отправка в регионы только по 100% предоплате. Наложенным платежом не отправляем\r\n"; record.description += desc; record.images = String.Join(",", sneaker.images); bool isPostList = this.post_list.ContainsKey(sneaker.sku); if (!String.IsNullOrWhiteSpace(record.images) && !isPostList) { avitoRecordList.Add(record); } } } //var streamWriter = new Stream(filenameCatalog); using (var sw = new StreamWriter(filenameCatalog, false, Encoding.GetEncoding(1251))) { //sw.Encoding = Encoding.GetEncoding(1251); var writer = new CsvWriter(sw); writer.Configuration.Delimiter = ";"; //writer.Configuration.Encoding = Encoding.GetEncoding(1251); writer.WriteRecords(avitoRecordList); } }
//private void CreateRecords() //{ // //nashstock // foreach (var stockRecord in NashStock1.records) // { // if (stockRecord.quantity > 0) // { // var tiuRecord = SetParameters(stockRecord); // if (tiuRecord != null) // { // if (stockRecord.sellPrice != 0) // { // tiuRecord.price = stockRecord.sellPrice.ToString(); // } // else // { // int price = (int)stockRecord.price + marzha; // tiuRecord.price = price.ToString(); // } // Records.Add(tiuRecord); // } // } // } // //discont // foreach (var Discont in DiscontStocks) // { // foreach (var stockRecord in Discont.records) // { // if (stockRecord.quantity > 0) // { // var tiuRecord = @GetRecord(stockRecord.sku); // if (tiuRecord == null) // { // tiuRecord = SetParameters(stockRecord); // if (tiuRecord != null) // { // int price = (int)stockRecord.price + marzha; // tiuRecord.price = price.ToString(); // Records.Add(tiuRecord); // } // } // else //если уже есть то добавляем только нужное // { // int price = (int)stockRecord.price + marzha; // if (price < Int32.Parse(tiuRecord.price)) // tiuRecord.price = price.ToString(); // } // } // } // } // //shops // foreach (var shopStock in ShopStocks) // { // foreach (var stockRecord in shopStock.records) // { // //price // int price = 100000; // if (shopStock.Currency == "EUR") // { // double doublePrice = (stockRecord.price + 40) * Settings.EURO_BUY; //40 евро доставка, маржу позже добавляю еще // price = (int)doublePrice; // } // else if (shopStock.Currency == "RUB") // { // price = (int)stockRecord.price; // } // else // { // throw new Exception("Неверная валюта"); // } // int sellPrice = price + marzha; // var tiuRecord = @GetRecord(stockRecord.sku); // if (tiuRecord == null) // { // tiuRecord = SetParameters(stockRecord); // if (tiuRecord != null) // { // tiuRecord.price = sellPrice.ToString(); // Records.Add(tiuRecord); // } // } // else //если уже есть то добавляем только нужное // { // if (sellPrice < Int32.Parse(tiuRecord.price)) // tiuRecord.price = price.ToString(); // } // } // } //end shops //} //public AvitoRecord GetRecord(string sku) //{ // for (int i = 0; i < this.Records.Count; i++) // { // if (this.Records[i].sku == sku) return this.Records[i]; // } // return null; //} public AvitoRecord SetParameters(Sneaker sneaker) { AvitoRecord avitoRecord = new AvitoRecord(login, pass, phone); //categorySneakerFullCatalog if (sneaker.category == "Мужская") { avitoRecord.category = "Самара -> Одежда, обувь, аксессуары -> Мужская одежда -> Обувь -> 42р"; } else if (sneaker.category == "Женская") { avitoRecord.category = "Самара -> Одежда, обувь, аксессуары -> Женская одежда -> Обувь -> 37р"; } else if (sneaker.category == Settings.CATEGORY_KIDS) { avitoRecord.category = "Самара -> Детская одежда и обувь -> Для мальчиков -> Обувь -> 30р"; } else { Program.Logger.Warn("Wrond category. sku:" + sneaker.sku); return(null); } //title avitoRecord.title = "Новые оригинальные " + sneaker.title; //description //description string desc = "Новые оригинальные " + sneaker.type.ToLower() + " " + sneaker.title + "\r\n"; desc += "Артикул: " + sneaker.sku + "\r\n"; desc += "Размеры:\r\n"; if (sneaker.StockRecords.Count == 0) { return(null); } else { avitoRecord.price = ((int)sneaker.StockRecords[0].price).ToString(); } foreach (var stockRecord in sneaker.StockRecords) { var size = new SneakerSize(sneaker, stockRecord.size); if (size.GetAllSizesFromUS(sneaker, size.sizeUS)) { desc += "- " + size.allSize + " / " + size.sizeRU + " RUS. Стоимость: " + stockRecord.price + "\r\n"; } else { Program.Logger.Warn("wrong size. sku:" + sneaker.sku + " category: " + sneaker.category + " size: " + size.sizeUS); return(null); } } desc += "По поводу других размеров звоните или пишите в сообщения Авито. Возможно они также есть в наличии\r\n"; desc += "------------------------\r\n"; desc += "Вся обувь оригинальная, новая, в упаковке\r\n"; desc += "------------------------\r\n"; desc += "БЕСПЛАТНАЯ доставка по Москве в день заказа или на следующий рабочий день.\r\n"; desc += "БЕСПЛАТНАЯ доставка по Самаре в день заказа или на следующий рабочий день.\r\n"; desc += "------------------------\r\n"; desc += "Доставка по России 3-5 дней компанией СДЭК.\r\n"; desc += "Стоимость доставки по РФ - 300 рублей.\r\n"; desc += "------------------------\r\n"; desc += "Доставка в регионы только по 100% предоплате, наложенным платежом не отправляем\r\n"; desc += "Звоните или пишите в сообщения Авито\r\n"; avitoRecord.description = desc; //images var images = new List <string>(); for (int i = 1; i <= 10; i++) { string imageFileName = sneaker.sku + "-" + i + ".jpg"; if (File.Exists(IMAGES_FOLDER_NAME + imageFileName)) { images.Add(imageFileName); } } if (images.Count > 0) { avitoRecord.images = String.Join(",", images); } else { return(null); } return(avitoRecord); }