public IEnumerable <NewsListItem> Parse(HtmlDocument htmlDocument) { var htmlNode = htmlDocument.GetElementbyId("archiwum_1"); var articleNodes = htmlNode.SelectNodes("article"); var items = new List <NewsListItem>(); foreach (var node in articleNodes) { var title = node.SelectSingleNode("h1").InnerText; var publicationDate = node.SelectSingleNode("div[@class='meta']/h2").LastChild.InnerText; var detailsLink = node.SelectSingleNode("a").GetAttributeValue("href", ""); var summary = HtmlEntity.DeEntitize(node.SelectSingleNode("p").InnerText); var thumbnailLink = node .SelectSingleNode("div[contains(@class, 'thumb_gallery')]") ?.SelectSingleNode("ul[@class='slides']/li[1]/img") ?.GetAttributeValue("src", ""); var item = new NewsListItem { Title = title, PublicationDate = publicationDate, DetailsLink = detailsLink, Summary = summary, Thumbnail = thumbnailLink, }; items.Add(item); } return(items); }
private void ShouldHaveCorrectTextFields(NewsListItem actual, NewsListItem expected) { actual.Title.Should().Be(expected.Title); actual.Summary.Should().StartWith(expected.Summary); actual.PublicationDate.Should().Be(expected.PublicationDate); actual.DetailsLink.Should().Be(expected.DetailsLink); }
public ItemDetailViewModel(NewsListItem item, IDataStore <NewsListItem> dataStore) : base(dataStore) { Title = item.Title; Item = item; var images = new List <string>(); if (!item.Thumbnail.IsNullOrEmpty()) { images.Add(item.Thumbnail); images.Add(item.Thumbnail); } Images = images; }
public void ReturnElementsWithCorrectTextData() { var expected = new NewsListItem { Title = "Początek sezonu z mocnym brzmieniem", Summary = "Za nami pierwszy koncert", DetailsLink = "http://www.kurierbytowski.com.pl/kurier/aktualnosci/poczatek-sezonu-mocnym-brzmieniem/", PublicationDate = "19/09/2017" }; var actual = _sut.Parse(_htmlDocument).First(); ShouldHaveCorrectTextFields(actual, expected); }
public Task AddNewListItems(libNewsBlog.RootObject rootObject) { //_connection.Dispose(); //var a = rootObject.items.Count; _connection.DeleteAll <NewsListItem>(); foreach (var i in rootObject.items) { var Newitem = new NewsListItem(i); { if (!_connection.Table <NewsListItem>().Any(x => x.id == Newitem.id)) { _connection.Insert(Newitem); } else { _connection.Update(Newitem); } } } return(Task.Run(() => rootObject)); }
//HttpClient client; //public OnlineDataNews() //{ //} public async Task <IEnumerable <NewsListItem> > GetNewsAsync() { //var client = new HttpClient(); //var NewsString = await client.GetStringAsync(NewsApiUrls.Base); //NewsString = NewsString.Substring(NewsString.IndexOf("[", System.StringComparison.CurrentCulture)); //NewsString = NewsString.Substring(0, NewsString.LastIndexOf("]", System.StringComparison.CurrentCulture) + 1); //NewsTable = JsonConvert.DeserializeObject<List<NewsListItem>>(NewsString); if (!initialized) { Init(); } List <NewsListItem> newlists = new List <NewsListItem>(); try { // create a file, overwriting any existing fileMySubFolder IFolder folder = await rootFolder.CreateFolderAsync("Library", CreationCollisionOption.OpenIfExists); IFile Newsfile = await folder.CreateFileAsync("News.json", CreationCollisionOption.OpenIfExists); var json = await Newsfile.ReadAllTextAsync(); //populate the file with some text googleNews = JsonConvert.DeserializeObject <libNewsBlog.RootObject>(json); foreach (var item in googleNews.items) { NewsListItem newslist = new NewsListItem(item); newlists.Add(newslist); } } catch (Exception) { } //await SyncNewsAsync(); return(await Task.Run(() => newlists)); //sqlite.GetNewListItems()); }
public ItemDetailViewModel Create(NewsListItem item) { return new ItemDetailViewModel(item, _dataStore); }
public void AddNewListItem(NewsListItem item) { _connection.Insert(item); }