Пример #1
0
 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));
        }
Пример #3
0
        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 });
        }
Пример #4
0
        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);
            }
        }
Пример #5
0
        /// <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);
        }
Пример #6
0
        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>());
            }
        }
Пример #7
0
        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);
            }
        }
Пример #8
0
 public void Update(NewsReader nr)
 {
     nr.ReadAllNews(this);
 }
Пример #9
0
        public void Update(NewsReader nr)
        {
            this.nr = nr;

            DataService.StartWebRequest(apiUrl, 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)));
 }