예제 #1
0
 public StructuraHotel XamlTable(string s, StructuraHotel st)
 {
     XElement el = XElement.Parse(s);
     //el.Save("D:/max.xml");
     /*Получим адрес*/
     IEnumerable<XElement> elements = el.Element("Контакты").Elements("Адрес");
     foreach (XElement p in elements)
     {
         st.adress = p.Value.ToString();
     }
     City c = new City();
     st.city = c.GetCity(st.adress);
     /*Получим телефон*/
    elements = el.Element("Контакты").Elements("Телефон");
     foreach (XElement p in elements)
     {
         st.phone1 = p.Value.ToString();
     }
     /*Получим сайт*/
     elements = el.Element("Контакты").Elements("Сайт");
     foreach (XElement p in elements)
     {
         st.www = p.Value.ToString();
     }
     var parser = new Http_parser();
     /*иначе выбрасывает исключение*/
     if(st.www != null)
     st.www = parser.Parser_http(st.www);
     return st;
 }
예제 #2
0
 public StructuraHotel GetHotel(StructuraHotel s, 
     ncnew_module_description_list line)
 {
     /*Для чтения файла по uri*/
     var gp = new GetPicFile();
     s.name = line.name; //имя отеля
     s.description = line.description; //описание
     s.contacts = line.contacts;
     /*Считываем картинки*/
     if (File.Exists(line.image1)) { s.image1 = gp.GetFile(line.image1); s.countPic++; }
     if (File.Exists(line.image2)) { s.image2 = gp.GetFile(line.image2); s.countPic++; }
     if (File.Exists(line.image3)) { s.image3 = gp.GetFile(line.image3); s.countPic++; }
     if (File.Exists(line.image4)) { s.image4 = gp.GetFile(line.image4); s.countPic++; }
     if (File.Exists(line.image5)) { s.image5 = gp.GetFile(line.image5); s.countPic++; }
     if (File.Exists(line.image6)) { s.image6 = gp.GetFile(line.image6); s.countPic++; }
     if (File.Exists(line.image7)) { s.image7 = gp.GetFile(line.image7); s.countPic++; }
     if (File.Exists(line.image8)) { s.image8 = gp.GetFile(line.image8); s.countPic++; }
     if (File.Exists(line.image9)) { s.image9 = gp.GetFile(line.image9); s.countPic++; }
     if (File.Exists(line.image10)) { s.image10 = gp.GetFile(line.image10);s.countPic++; }
     return s;
 }
예제 #3
0
 public void SaveCategorySubcategory(StructuraHotel s, db_UH_UA db)
 {
     /*************Разбираемся с категорией - Город************************/
     //1.Проверяем, есть ли уже такая (такой город), если есть - то catInBaza наш объект
     // нет - создадим категорию
     try
     {
         Categories catInBaza = (from p in db.Categories
                                 where p.CategoryName == s.city
                                 select p).Single();
         var sub = new Subcategories { SubcategoryName = s.name };
         catInBaza.Subcategories.Add(sub);
         return;
     }
     //Такой категории/города нет
     catch
     {
         var newCategory = new Categories { CategoryName = s.city };
         var sub = new Subcategories { SubcategoryName = s.name };
         newCategory.Subcategories.Add(sub);
         db.Categories.AddObject(newCategory);
     }
 }   
예제 #4
0
        public void RunCopy()
        {
            var sql = new dbUkraine();
            var db = new db_UH_UA();
            var productData = new StructuraHotel();
            
            var getsql = new GetSql();
            /*Создание пустой без инициализации объект BuildXaml*/
            var xml = new BuildXaml();
            /*Извлечение из xml город, тел ...*/
            var structuraHotel = new XamlToTable();
            //SaveUkrHotel - заполняет structuraHotel данными одного продукта
            //пока голая инициализация
            var s = new SaveUkrHotel();

            //Получаем IQueryable отелей из базы MySQL удовлетворяющих некоторым условиям
            IQueryable<ncnew_module_description_list> singleProduct = 
                from p in sql.ncnew_module_description_list
                        .Where(p => p.description != "empty")
                        .Where(p => p.description != "")
                        .Where(p => p.description != null)
                        .Where(p => p.image1 != "empty")
                        .Where(p => p.image1 != "")
                        .Where(p => p.image1 != null)
                        //.Where(p => p.id < 50)
                        .OrderBy(p => p.name)
                           select p;
            //Задаем старт Id
            productData.Id = 1;

            //Главный цикл, в котором все и происходит, до этого ничего не делалось кроме IQueryable
            //перебираем IQueryable<singleProduct>
            foreach (var d in singleProduct)
            {
                //Очищаем структуру productData
                productData.Clear();

                /*1. Получаем запись отеля*/
                productData = getsql.GetHotel(productData, d);

                
                    /*2. Преобразуем XAML, там разобрано на имя, телеф. и т д */
                    string descriptionHtml = xml.BuildHaml(productData.name,
                                                           productData.description, productData.contacts, productData.Id);

                    /*Будем записывать если есть данные*/
                   /*Если ошибка текста или нет контактов*/
                    if ((descriptionHtml != "ОШИБКА ОБРАБОТКИ") &&
                        (!string.IsNullOrEmpty(productData.contacts)) &&
                        (productData.countPic != 0) )
                    {
                        /*3. Извлекаем из XAML город, тел, емаил, сайт*/
                        productData = structuraHotel.XamlTable(descriptionHtml, productData);

                        /*Имеем все данные в productData - начинаем строить структуру Mtender*/
                        //1. Записываем категории/подкатегории
                        s.SaveCategorySubcategory(productData, db);
                        db.SaveChanges();
                        //
                        int cat = (from p in db.Categories
                                   where p.CategoryName == productData.city
                                   select p.CategoryId).Single();

                        //Могут быть одинаковые поддиректории
                        //Например Гостиница Украина в Киеве и ..
                        int sub = (from p in db.Subcategories
                                   where (p.SubcategoryName == productData.name
                                    & p.CategorySet_CategoryId == cat)
                                   select p.SubcategoryId).First();//Single();
                        //Генерим объект Products
                        var pp = s.SaveProduct(productData, cat, sub);
                        db.Products.AddObject(pp);
                        db.SaveChanges();
                    }
            }

            //Добавим в базу Products


            //db.SaveChanges();
        }
예제 #5
0
        //Добавляет в базу отдельные Product, они не связаны отношениями
        //с категориями и подкатегориями, но имеют свойства CategoryId и SubcategoryId
        public Products SaveProduct(StructuraHotel s, int cat, int sub)
        {
            int count = 0;
            var product = new Products
                {
                    Name = s.name,
                    City = s.city,
                    Description = s.description,
                    Contacts = s.contacts,
                    Adress = s.adress,
                    Phone = s.phone1,
                    Site = s.www,
                    //Обрежим Description и сделаем Title
                    Title = MadeTitle(s.description),
                    //Определим CategoryId и SubcategoryId
                    CategoryId = cat,
                    SubcategoryId = sub,
                    Price = 10,
                    EnrollmentDate = DateTime.Now
                };

            //db.Products.AddObject(product);

            //Добавляем картинки
            if (count < s.countPic)
            {
                var img = new Pictures { PicBig = s.image1, PicBigMime = "image/jpeg" };
                product.Pictures.Add(img);
                count++;
            }
            if (count < s.countPic)
            {
                var img = new Pictures { PicBig = s.image2, PicBigMime = "image/jpeg" };
                product.Pictures.Add(img);
                count++;
            }
            if (count < s.countPic)
            {
                var img = new Pictures { PicBig = s.image3, PicBigMime = "image/jpeg" };
                product.Pictures.Add(img);
                count++;
            }
            if (count < s.countPic)
            {
                var img = new Pictures { PicBig = s.image4, PicBigMime = "image/jpeg" };
                product.Pictures.Add(img);
                count++;
            }
            if (count < s.countPic)
            {
                var img = new Pictures { PicBig = s.image5, PicBigMime = "image/jpeg" };
                product.Pictures.Add(img);
                count++;
            }
            if (count < s.countPic)
            {
                var img = new Pictures { PicBig = s.image6, PicBigMime = "image/jpeg" };
                product.Pictures.Add(img);
                count++;
            }
            if (count < s.countPic)
            {
                var img = new Pictures { PicBig = s.image7, PicBigMime = "image/jpeg" };
                product.Pictures.Add(img);
                count++;
            }
            if (count < s.countPic)
            {
                var img = new Pictures { PicBig = s.image8, PicBigMime = "image/jpeg" };
                product.Pictures.Add(img);
                count++;
            }
            if (count < s.countPic)
            {
                var img = new Pictures { PicBig = s.image9, PicBigMime = "image/jpeg" };
                product.Pictures.Add(img);
                count++;
            }
            if (count < s.countPic)
            {
                var img = new Pictures { PicBig = s.image10, PicBigMime = "image/jpeg" };
                product.Pictures.Add(img);
            }
            return product;
        }