/// <summary> /// Wybiera stronę na podstawie adresu url i zapisuje wszystkie wiadomości w kolekcji /// </summary> /// <param name="lineNews">Lista wiadomości</param> /// <param name="category">Kategoria źródłowa do odczytu</param> public void ParseXml(ObservableCollection<News> lineNews, Category category) { try { using (XmlReader reader = XmlReader.Create(category.Url)) { var formatter = new Rss20FeedFormatter(); formatter.ReadFrom(reader); foreach (var item in formatter.Feed.Items) { lineNews.Add(new News { Title = item.Title.Text, Date = item.PublishDate.DateTime.ToString(), UrlNews = item.Links.First().Uri.ToString(), Description = item.Summary.Text, Category = category.Name, Id = item.Id }); if (item.Links.Count > 1 && item.Links.Any(n => n.Uri.ToString().Contains(".jpg"))) lineNews.Last().UrlImage = item.Links[1].Uri.ToString(); ParseId(lineNews.Last()); ParseDescription(lineNews.Last()); } } } catch (WebException ex) { MessageBox.Show(ex.Message, "Syndication Reader"); } }
/// <summary> /// Odczytuje dane z bazy na podstawie kategorii i kopiuje do podanej kolekcji /// </summary> /// <param name="lineNews">Kolekcja do wczytania wiadomości</param> /// <param name="ArchiveListCategories">Kolkcja do wczytania wszystkich kategorii w archiwum</param> /// <param name="category">Docelowa kategoria</param> public void ReadBase(ObservableCollection<News> lineNews, ObservableCollection<Category> ArchiveListCategories, Category category) { IRSSrepo rssRepo = new RSSrepo(); rssRepo.GetSavedNews(lineNews, ArchiveListCategories, category.Name); }