예제 #1
0
        //добавить в базу данных
        public static void AddShowInDb_Entity(ShowInfo show)
        {
            using (var db = new Context())
            {
                var country = db.Countries.Find(show.Country);
                if (country == null)
                {
                    country = new CountryModel()
                    {
                        Name = show.Country
                    };
                }

                var new_show = new ShowModel()
                {
                    Name          = show.Name,
                    OriginalName  = show.OriginalName,
                    Country       = country,
                    Genres        = show.Genres,
                    MyShowsRating = show.MyShowsRating
                };

                db.Shows.Add(new_show);
                db.SaveChanges();
            }
        }
예제 #2
0
 //добавление в кэш
 public static void AddShowInDB(ShowInfo show)
 {
     // открывает базу данных, если ее нет - то создает
     using (var db = new LiteDatabase(NameDb))
     {
         // Получаем коллекцию
         var collectionShows = db.GetCollection <ShowInfo>(NameCollection);
         //добавляем новый элемент
         collectionShows.Insert(show);
     }
 }
예제 #3
0
        //поиск информации по ключу
        public static ShowInfo GetShowInfo(string id)
        {
            ShowInfo     show       = new ShowInfo();
            string       htmlShowId = "https://myshows.me/view/" + id + "/";
            HtmlWeb      web        = new HtmlWeb();
            HtmlDocument htmlDoc    = web.Load(htmlShowId);

            try
            {
                show.Id = id;
                //Название сериала
                show.Name = htmlDoc.DocumentNode.SelectSingleNode("//main/h1[@itemprop='name']").InnerText.Trim();;
                //Оригинальное название
                show.OriginalName = htmlDoc.DocumentNode.SelectSingleNode("//main/p[@class='subHeader']").InnerText.Trim();
                show.Image        = htmlDoc.DocumentNode.SelectSingleNode(".//div[@class = 'presentBlock']").InnerHtml.Trim().Substring(34).Remove(79);
                //информация из таблицы
                var info = htmlDoc.DocumentNode.SelectNodes(".//div[@class = 'clear']/p");
                foreach (var str in info)
                {
                    if (str.InnerText.Contains("Страна"))
                    {
                        show.Country = str.InnerText.Trim().Substring(8);
                    }

                    else if (str.InnerText.Contains("Жанры"))
                    {
                        show.Genres = str.InnerText.Replace(" ", string.Empty).Replace("\n", " ").Substring(7);
                    }

                    else if (str.InnerText.Contains("Рейтинг MyShows"))
                    {
                        show.MyShowsRating =
                            str.InnerText.Trim().Replace("\n", " ").Replace("&thinsp;", string.Empty).Substring(17);
                    }
                }
                AddShowInDB(show);
                AddShowInDb_Entity(show);
                return(show);
            }
            catch (Exception)
            {
                return(null);
            }
        }