public NewsController( UserManager <ApplicationUser> userManager, ApplicationDbContext context) { _userManager = userManager; _newsReader = new NewsReader(context); }
public async Task <ActionResult> UpdateNews(int id) { var model = await NewsReader.GetNewsItem(id); if (model == null) { return(ViewMessageModal(new ViewMessageModel(ViewMessageType.Danger, "Error", $"News item '{id}' not found"))); } return(View("UpdateNewsModal", model)); }
public void Setup() { mockPage = new Mock <Page>(MockBehavior.Strict, new object[] { 8, 2, 1 }); var newsReader = new NewsReader(); var allNews = newsReader.GetNews(); foreach (News news in allNews) { mockPage.Object.AddNews(news); } mockPageRules = new Mock <PageRules>(MockBehavior.Strict, new object[] { mockPage.Object }); }
public async Task RssFeedParser_ParseMediumFeed_ReturnsNewsFeedItems() { var url = "https://medium.com/feed/ravenfall"; var reader = new NewsReader(url); var news = await reader.GetNewsAsync(); Assert.AreNotEqual(null, news); Assert.IsTrue(news.Count > 0); foreach (var item in news) { Assert.AreNotEqual(null, item.ImageSource); Assert.AreNotEqual(null, item.NewsSource); Assert.AreNotEqual(null, item.Title); Assert.AreNotEqual(null, item.ShortDescription); Assert.AreNotEqual(DateTime.MinValue, item.Published); } }
/// <summary> /// Invoked when this page is about to be displayed in a Frame. /// </summary> /// <param name="e">Event data that describes how this page was reached. The Parameter /// property is typically used to configure the page.</param> protected override void OnNavigatedTo(NavigationEventArgs e) { INewsUpdater blekkoChinaUpdater = new BlekkoChinaUpdater(); INewsUpdater blekkoEuropeUpdater = new BlekkoEuropeUpdater(); INewsUpdater blekkoAfricaUpdater = new BlekkoAfricaUpdater(); INewsUpdater blekkoIndiaUpdater = new BlekkoIndiaUpdater(); INewsUpdater blekkoSAUpdater = new BlekkoSAUpdater(); INewsUpdater blekkoUSUpdater = new BlekkoUSUpdater(); List <INewsUpdater> newsSources = new List <INewsUpdater>(); newsSources.Add(blekkoChinaUpdater); newsSources.Add(blekkoEuropeUpdater); newsSources.Add(blekkoAfricaUpdater); newsSources.Add(blekkoIndiaUpdater); newsSources.Add(blekkoSAUpdater); newsSources.Add(blekkoUSUpdater); nr = new NewsReader(newsSources); Update(nr); }
public async Task <IReadOnlyList <NewsItem> > GetNewsFeedAsync(int take) { try { if (newsCache.TryGetValue <IReadOnlyList <NewsItem> >("news_feed", out var news)) { return(news.Take(take).ToList()); } var newsReader = new NewsReader("https://medium.com/feed/ravenfall"); news = await newsReader.GetNewsAsync(); return(newsCache.Set("news_feed", news, TimeSpan.FromMinutes(30)) .Take(take) .ToList()); } catch { return(new List <NewsItem>()); } }
static void Main(string[] args) { NewsReader newsReader = new NewsReader(); newsReader.RegisterNewsService(new GoogleNewsService()); newsReader.RegisterNewsService(new PressTrustOfIndiaNewsService()); newsReader.RegisterNewsService(new InternalNewsService()); NewsBoard newsPaper = new NewsBoard("NEWS CHANNEL", DateTime.Now); newsPaper.MaxPages = 2; int maxNewsPerPage = 8; int maxAdvertisementPerPage = 2; int pageNumber = 1; Page page = newsPaper.CreatePage(maxNewsPerPage, maxAdvertisementPerPage, pageNumber); newsPaper.AddPage(page); while (true) { // Get all news from different registered services var allNews = newsReader.GetNews(); foreach (News news in allNews) { if (page.IsPageFull()) { page = newsPaper.CreatePage(maxNewsPerPage, maxAdvertisementPerPage, (newsPaper.PageCount + 1)); newsPaper.AddPage(page); } page.AddNews(news); } newsPaper.DisplayAllNews(); Thread.Sleep(3000); } }
public void Update(NewsReader nr) { nr.ReadAllNews(this); }
public void Update(NewsReader nr) { this.nr = nr; DataService.StartWebRequest(apiUrl, this); }
public async Task <ActionResult> GetNews(DataTablesModel model) { return(DataTable(await NewsReader.GetNews(model))); }