Пример #1
0
 public void CloseAdv(Adv24au adv)
 {
     if (adv.IsExpired()) return;
     LotCloser24au.Close(adv.Number.ToString(), "Лот закрыт");
     adv.OnClosed();
     Context.Save();
 }
Пример #2
0
        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();
        }
Пример #3
0
        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();

            }
        }
Пример #4
0
        //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;
        }
Пример #5
0
        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;
        }
Пример #6
0
 private void MessagePrepare(Adv24au adv)
 {
     var counter = counterDict[adv];
     Message("Подготовка синхронизации объявления {0} из {1}", counter, count);
 }
Пример #7
0
 private void MessagePost(Adv24au adv)
 {
     var counter = counterDict[adv];
     Message("Синхронизация объявления {0} из {1}", counter, count);
 }
Пример #8
0
        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();
        }