public void CloseAdv(Adv24au adv) { if (adv.IsExpired()) return; LotCloser24au.Close(adv.Number.ToString(), "Лот закрыт"); adv.OnClosed(); Context.Save(); }
public void ExportAdv(Adv24au adv) { var ftpClient = new MyFtpClient("ftp://localhost/", "poolsar", "rolton"); // выкладываем картинку var srcImagePath = adv.Product.GetImagePath(); var fileInfo = new FileInfo(srcImagePath); string filePath = string.Format("localhost/prestashop/imgimport/{0}", fileInfo.Name); ftpClient.WriteFileBinary(filePath, fileInfo.FullName); adv.Image = "http://" + filePath; // выкладываем csv var sb = new StringBuilder(); // sb.AppendLine("\"ID налога\";\"Фото\";\"Имя\";\"Категория\";\"Цена\";\"Количество\";"); var csvString = CSVConstants.GetCsvString(adv); sb.AppendLine(csvString); csvString = sb.ToString(); ftpClient.WriteFileText("localhost/prestashop/admin8706/import/20140325213015-imgimport2.csv", csvString); // отправляем запрос на импорт string columnsBody = CSVConstants.GetCsvColumns(); MakeRequests(columnsBody); WebStoreLib.WebStoreController.SetNumbersByIdsInReferences(adv); Context.Save(); }
private static object GetValue(Adv24au adv, string csvFeild) { switch (csvFeild) { case id: return adv.Number; case reference: return adv.Id; case name: return adv.Title; case description: return string.Empty;// adv.Description; case category: return adv.Category.Number; case price_tex: return adv.Price; case quantity: return adv.GetQuantity(); case image: return adv.Image; case id_tax_rules_group: return 0; default: throw new ArgumentOutOfRangeException(); } }
//private static AdvCategory GetCategoryValues(AdvCategory advCategory) //{ // string result = ""; // if (advCategory.Parent != null) // { // result = GetCategoryValues(advCategory.Parent) + ","; // } // result += string.Format("\"{0}\"", advCategory.Number); // return adv.Category; //} public static string GetCsvString(Adv24au adv) { var sb = new StringBuilder(); foreach (var csvFeild in CSVFeilds) { var value = GetValue(adv, csvFeild); if (value is string) { value = CSVEncode(value as string); } sb.AppendFormat("\"{0}\";", value); } var result = sb.ToString(); return result; }
public string CreateRequestBody(Adv24au adv, bool isCreate = false) { //(string name, string description, decimal price, string imageId, int lotNumber, int days, int category, bool isCreate = false) //adv.Title, adv.Description, adv.Price, adv.AdvImages, adv.Number, adv.Days, adv.Category.Number.Value, exportInfo.Create var forms = new Dictionary<string, string>(); forms.Add("Name", adv.Title); forms.Add("Cat1", "928"); // Дети растут forms.Add("Cat2", "933"); // Игрушки //forms.Add("Cat3", "934"); // Мягкие //forms.Add("Cat3", "937"); // Машины и Техника //forms.Add("Cat3", "936"); // Куклы и аксессуары forms.Add("Cat3", adv.Category.Number.Value.ToString()); forms.Add("selectCategoryType", "fromManual"); forms.Add("ListProperties[0].Id", "447"); // состояние forms.Add("ListProperties[0].Value", "18791"); // новое var advImages = adv.AdvImages.OrderBy(i => i.Order).ToList(); for (int i = 0; i < advImages.Count; i++) { var advImage = advImages[i]; var key = string.Format("ImageIds[{0}]", i); var value = advImage.GetUploadData(); forms.Add(key, value); } forms.Add("imageloadstatus", "SUCCESS"); forms.Add("Description", adv.Description); forms.Add("TypeAuction", "ONLY_BLITZ"); forms.Add("StandartStartPrice", ""); forms.Add("StandartBlitzPrice", ""); forms.Add("RoubleBlitzPrice", ""); forms.Add("OnlyBlitzPrice", adv.Price.ToString("F0")); forms.Add("ReverseStartPrice", ""); forms.Add("MinPrice", ""); // Для создания forms.Add("Days", adv.Days.ToString()); // Продолжительность торгов // Расположено Красноярск Тотмина 14 forms.Add("Landmark.Id", "10"); forms.Add("Landmark.IdRegion", "464"); forms.Add("Latitude", "56,0318984985352"); forms.Add("Longitude", "92,7762985229492"); forms.Add("Place", "Самовывоз. Возможна доставка по договоренности."); // Условие передачи forms.Add("ExtraContactInfo", ""); forms.Add("IdRegion", "464"); forms.Add("UseAutoRepeat", "false"); // Авто-перевыставление лота if (!isCreate) { forms.Add("Id", adv.Number.ToString()); // номер лота } var sb = new StringBuilder(); bool first = true; foreach (var param in forms.Keys) { string value = HttpUtility.UrlEncode(forms[param]); if (!first) sb.Append("&"); first = false; sb.AppendFormat("{0}={1}", param, value); } string formBody = sb.ToString(); return formBody; }
private void MessagePrepare(Adv24au adv) { var counter = counterDict[adv]; Message("Подготовка синхронизации объявления {0} из {1}", counter, count); }
private void MessagePost(Adv24au adv) { var counter = counterDict[adv]; Message("Синхронизация объявления {0} из {1}", counter, count); }
public void ExportAdvs(Adv24au[] advs) { var exportCats = advs.Where(a => a.Category.Number == 0 || a.Category.Number == null).Select(a => a.Category).ToArray(); ExportAdvCategory(exportCats); var ftpClient = new MyFtpClient("ftp://localhost/", "poolsar", "rolton"); var withNewImages = advs.Where(a => a.PrepareExport().UpdateImages).ToList(); foreach (var adv in withNewImages) { // выкладываем картинку var srcImagePath = adv.Product.GetImagePath(); var fileInfo = new FileInfo(srcImagePath); string filePath = string.Format("localhost/prestashop/imgimport/{0}", fileInfo.Name); ftpClient.WriteFileBinary(filePath, fileInfo.FullName); adv.Image = "http://" + filePath; } // выкладываем csv var sb = new StringBuilder(); string csvString; foreach (var adv in advs) { csvString = CSVConstants.GetCsvString(adv); sb.AppendLine(csvString); } csvString = sb.ToString(); ftpClient.WriteFileText("localhost/prestashop/admin8706/import/20140325213015-imgimport2.csv", csvString); // отправляем запрос на импорт string columnsBody = CSVConstants.GetCsvColumns(); MakeRequests(columnsBody); var newAdvs = advs.Where(a => a.Number == 0).ToArray(); if (newAdvs.Any()) { WebStoreLib.WebStoreController.SetNumbersByIdsInReferences(newAdvs); } Context.Save(); }