示例#1
0
        public async Task <ActionResult> Index(int page = 1, int?loai = 1)
        {
            NewsProvider newsProvider = new NewsProvider();

            ViewBag.loai = loai;
            return(View((await newsProvider.GetShowActiveAsync(loai)).ToPagedList(page, 10)));
        }
示例#2
0
 //[CustomAuthorize("0","1")]
 public async Task <ICollection <News> > GetAll()
 {
     using (var newsProvider = new NewsProvider())
     {
         return(await newsProvider.GetAllAsync());
     }
 }
示例#3
0
        public ActionResult Index(int page = 1, int pagesize = 10)
        {
            NewsProvider      newsProvider = new NewsProvider();
            IPagedList <News> listNews     = newsProvider.FindAll(p => p.Status == 1).OrderByDescending(p => p.PostedDate).ToPagedList(page, pagesize);

            return(View(listNews));
        }
示例#4
0
 public async Task <News> Get(int id)
 {
     using (var newsProvider = new NewsProvider())
     {
         return(await newsProvider.GetByIDAsync(id));
     }
 }
示例#5
0
 public async Task <AccessEntityStatusCode> Delete(int id)
 {
     using (var newsProvider = new NewsProvider())
     {
         return(await newsProvider.DeleteAsync(id));
     }
 }
示例#6
0
        public async Task <JsonResult> Delete(int id)
        {
            NewsProvider newsProvider = new NewsProvider();
            var          result       = await newsProvider.DeleteAsync(id);

            return(Json(new AccessEntityResult {
                Status = result, Data = id, Message = ""
            }));
        }
 public void FindAllTest()
 {
     using (var testContext = new TestContext<NewsProvider>())
       {
     var newsProvider = new NewsProvider(testContext.ConnectionString);
     var result = newsProvider.FindAll();
     Assert.IsNotNull(result);
     Assert.IsTrue(result.Count == testContext.NumberOfTestItems);
       }
 }
示例#8
0
        public ActionResult Edit(int id)
        {
            var        data = db.Countries.OrderBy(p => p.CountryName).ToList();
            SelectList list = new SelectList(data, "CountryId", "CountryName");

            ViewBag.Country = data;


            NewsProvider provider = db.NewsProviders.Find(id);

            return(View(provider));
        }
示例#9
0
        public ActionResult Create(NewsProvider provider)
        {
            try
            {
                var data = db.insertNewsProvider(provider.Name, provider.Url, provider.CountryId).ToString();

                return(RedirectToAction("Index"));
            }
            catch
            {
                return(View("Create"));
            }
        }
示例#10
0
        private static bool IsNewsAcceptable(News newsItem, NewsProvider providerInfo)
        {
            foreach (var token in GetTokens(providerInfo.Type, providerInfo.LanguageId))
            {
                if ((newsItem.Header != null && newsItem.Header.IndexOf(token, StringComparison.InvariantCultureIgnoreCase) > -1) ||
                    (newsItem.Description != null && newsItem.Description.IndexOf(token, StringComparison.InvariantCultureIgnoreCase) > -1))
                {
                    return(true);
                }
            }

            return(false);
        }
示例#11
0
 public static Blog ConvertNewsToBlog(External.News news, NewsProvider providerInfo)
 {
     return(new Blog
     {
         Header = news.Header,
         Tags = news.Tags,
         Article = news.Description,
         SourceUrl = news.SourceLink,
         PublishDate = news.PublishDateTime,
         Theme = news.ThemeOrCategory,
         LanguageId = providerInfo.LanguageId,
         ProviderName = providerInfo.ProviderName,
         UniqueId = Guid.NewGuid().ToString("N")
     });
 }
示例#12
0
        public async Task <ActionResult> Detail(int?id)
        {
            if (id == null)
            {
                return(View());
            }
            else
            {
                NewsProvider newsProvider = new NewsProvider();
                ViewData["REALTEDPOST"] = newsProvider.GetRelatedPost(id.Value);
                News news = await newsProvider.GetByIDAsync(id.Value);

                return(View(news));
            }
        }
示例#13
0
 public HttpResponseMessage GetTextNewsDetial([FromUri] int aid)
 {
     try
     {
         NewsProvider _Provider = new NewsProvider();
         var          result    = _Provider.GetArticleDetial(aid);
         return(Request.CreateResponse(HttpStatusCode.OK, result));
     }
     catch (Exception ex)
     {
         LogFactory _LogFactory = new LogFactory(this.GetType());
         _LogFactory.CreateLog(LogType.Error, "获取文件内容信息", "GetTextNewsDetial", ex);
         return(Request.CreateResponse(HttpStatusCode.InternalServerError, ex.Message));
     }
 }
示例#14
0
 public HttpResponseMessage GetActions([FromUri] int StartRow, [FromUri] int PageSize)
 {
     try
     {
         NewsProvider _Provider = new NewsProvider();
         var          result    = _Provider.GetActions(StartRow, PageSize);
         return(Request.CreateResponse(HttpStatusCode.OK, result));
     }
     catch (Exception ex)
     {
         LogFactory _LogFactory = new LogFactory(this.GetType());
         _LogFactory.CreateLog(LogType.Error, "学会活动", "GetActions", ex);
         return(Request.CreateResponse(HttpStatusCode.InternalServerError, ex.Message));
     }
 }
示例#15
0
        public async Task <JsonResult> EditPut(int id, News model)
        {
            if (ModelState.IsValid)
            {
                NewsProvider newsProvider = new NewsProvider();
                var          result       = await newsProvider.EditAsync(id, model);

                return(Json(result));
            }
            else
            {
                return(Json(new AccessEntityResult {
                    Status = AccessEntityStatusCode.ModelFailed, Message = "Thông tin tin tức không hợp lệ, thử lại."
                }));
            }
        }
示例#16
0
        public HttpResponseMessage GetNewsBySearchKey([FromUri] GetNewsBySearchKeyParam Param)
        {
            try
            {
                NewsProvider _Provider = new NewsProvider();
                var          result    = _Provider.GetNewsByTypeID(Param.StartRow, Param.PageSize, Param.TypeID, Param.SearchKey);
                return(Request.CreateResponse(HttpStatusCode.OK, result));
            }
            catch (Exception ex)
            {
                LogFactory _LogFactory = new LogFactory(this.GetType());
                _LogFactory.CreateLog(LogType.Error, "根据检索关键字获取新闻列表", "GetNewsBySearchKey", ex);

                return(Request.CreateResponse(HttpStatusCode.InternalServerError, ex.Message));
            }
        }
示例#17
0
        public HttpResponseMessage GetHeadline([FromUri] Int32 Count)
        {
            try
            {
                NewsProvider _Provider = new NewsProvider();
                var          result    = _Provider.GetHeadline(Count);
                return(Request.CreateResponse(HttpStatusCode.OK, result));
            }
            catch (Exception ex)
            {
                LogFactory _LogFactory = new LogFactory(this.GetType());
                _LogFactory.CreateLog(LogType.Error, "获取头条新闻", "GetHeadline", ex);

                return(Request.CreateResponse(HttpStatusCode.InternalServerError, ex.Message));
            }
        }
示例#18
0
        public async Task <JsonResult> CreatePost(News model)
        {
            model.Status = 1;
            model.UserID = SessionApp.UserID;
            if (ModelState.IsValid)
            {
                NewsProvider newsProvider = new NewsProvider();
                var          result       = await newsProvider.AddAsync(model);

                return(Json(result));
            }
            else
            {
                return(Json(new AccessEntityResult {
                    Status = AccessEntityStatusCode.ModelFailed, Message = "Thông tin tin tức không hợp lệ, thử lại."
                }));
            }
        }
示例#19
0
        public ActionResult Edit([Bind(Include = "ProviderId,Name,Url,CountryId")] NewsProvider provider, int id, Country country)
        {
            try
            {
                var update = db.updateNewsProvider
                             (
                    provider.ProviderId,
                    provider.Name,
                    provider.Url,
                    provider.CountryId
                             ).ToString();

                return(RedirectToAction("Index"));
            }
            catch
            {
                return(View());
            }
        }
示例#20
0
        public async Task <AccessEntityResult> Edit(int id, News model)
        {
            model.PostedDate = DateTime.Now;
            ClaimsIdentity acc    = (ClaimsIdentity)User.Identity;
            var            idUser = acc.Claims.FirstOrDefault(p => p.Type == ClaimTypes.Sid);

            model.UserID = idUser == null ? 0 : Convert.ToInt32(idUser.Value);
            if (ModelState.IsValid)
            {
                using (var newsProvider = new NewsProvider())
                {
                    return(await newsProvider.EditAsync(id, model));
                }
            }
            else
            {
                return(new AccessEntityResult {
                    Status = AccessEntityStatusCode.ModelFailed, Message = MessageManager.GetErrorMessage(ICB.Business.Entities.Apps.ModuleType.Base, MessageType.ModelFailed)
                });
            }
        }
示例#21
0
        public void Init()
        {
            var entriesList = new List <string>();

            if (ShowAll)
            {
                foreach (var patch in NewsProvider.allVersionNotes)
                {
                    entriesList.Add(patch.title);
                    entriesList.AddRange(patch.entries);
                }
            }
            else
            {
                foreach (var patch in NewsProvider.NewsAfterVersion(LastVersionString))
                {
                    entriesList.Add(patch.title);
                    entriesList.AddRange(patch.entries);
                }
            }

            entries = entriesList.ToArray();
        }
示例#22
0
        public static void CheckVersion()
        {
            // Update actual version
            if (PrisonLaborPrefs.Version == Version.v0_0)
            {
                PrisonLaborPrefs.Version     = versionNumber;
                PrisonLaborPrefs.LastVersion = versionNumber;
            }
            else if (PrisonLaborPrefs.Version != versionNumber)
            {
                PrisonLaborPrefs.Version = versionNumber;
            }

            // Client has new version
            if (PrisonLaborPrefs.LastVersion < versionNumber)
            {
                // Show version news
                NewsWindow.LastVersionString = GetVersionString(PrisonLaborPrefs.LastVersion);
                NewsWindow.AutoShow          = NewsProvider.ShouldAutoShowChangelog(NewsWindow.LastVersionString);

                // Dev version fix, it can be removed in future
                // There is no changelog for 0.10 so it will skip it, and display all changes
                if (PrisonLaborPrefs.LastVersion == Version.v0_10_0)
                {
                    NewsWindow.LastVersionString = GetVersionString(Version.v0_9_11);
                }

                // Pre 0.9.4
                if (PrisonLaborPrefs.LastVersion < Version.v0_9_4)
                {
                    CompatibilityPatches.OlderVersions.Pre_v0_9_4();
                }
            }

            PrisonLaborPrefs.Version = versionNumber;
            PrisonLaborPrefs.Save();
        }
示例#23
0
        private void LoadNewsFeed()
        {
            NewsProvider.GetVideos((videos, exception) =>
            {
                SmartDispatcher.BeginInvoke(() =>
                {
                    NewsItems.Clear();

                    if (videos.Count >= 2)
                    {
                        NewsItems.Add(new NewsItem()
                        {
                            Title     = Properties.Resources.WebTV_DMI,
                            WebTVItem = videos.FirstOrDefault(v => v.Category == "DMI"),
                        });

                        NewsItems.Add(new NewsItem()
                        {
                            Title     = Properties.Resources.WebTV_3D,
                            WebTVItem = videos.FirstOrDefault(v => v.Category == "3D"),
                        });
                    }

                    NewsProvider.GetNewsItems((items, e) =>
                    {
                        SmartDispatcher.BeginInvoke(() =>
                        {
                            foreach (var item in items)
                            {
                                NewsItems.Add(item);
                            }
                        });
                    });
                });
            });
        }
示例#24
0
文件: Program.cs 项目: 396000787/csaa
        /// <summary>
        /// 获取学会工作
        /// </summary>
        public static void GetAssociation()
        {
            NewsProvider _NewsProvider = new NewsProvider();

            _NewsProvider.GetAssociation(0, 10);
        }
示例#25
0
文件: Program.cs 项目: 396000787/csaa
        /// <summary>
        /// 获取普通新闻
        /// </summary>
        public static void GetTextNews()
        {
            NewsProvider _NewsProvider = new NewsProvider();

            _NewsProvider.GetTextNews(0, 10);
        }
示例#26
0
文件: Program.cs 项目: 396000787/csaa
        /// <summary>
        /// 获取通知通告
        /// </summary>
        public static void GetNotices()
        {
            NewsProvider _NewsProvider = new NewsProvider();

            _NewsProvider.GetNotices(0, 10);
        }
示例#27
0
        public ActionResult Edit(int id)
        {
            NewsProvider newsProvider = new NewsProvider();

            return(View(newsProvider.GetByID(id)));
        }
示例#28
0
        private static void TestNewsImporter()
        {
            var providers = new List <NewsProvider>
            {
                // Fashion sites.
                new NewsProvider(@"riamoda.ru", 2, 24, @"http://riamoda.ru/rss.xml", NewsProviderType.Fashion),
                new NewsProvider(@"Modanews.ru", 2, 24, @"http://modanews.ru/rss/news/", NewsProviderType.Fashion),
                new NewsProvider(@"glianec.com.u", 2, 24, @"http://glianec.com.ua/?format=feed&type=rss", NewsProviderType.Fashion),
                new NewsProvider(@"fashiontime.ru - публикации", 2, 24, @"http://www.fashiontime.ru/rss/content.xml", NewsProviderType.Fashion),
                new NewsProvider(@"fashiontime.ru - новости", 2, 24, @"http://www.fashiontime.ru/rss/content_news.xml", NewsProviderType.Fashion),
                new NewsProvider(@"fashiontime.ru - статьи", 2, 24, @"http://www.fashiontime.ru/rss/content_article.xml", NewsProviderType.Fashion),
                new NewsProvider(@"intermoda.ru", 2, 24, @"http://www.intermoda.ru/rss/news", NewsProviderType.Fashion),
                new NewsProvider(@"profashion.ru", 2, 24, @"http://profashion.ru/news/rss/", NewsProviderType.Fashion),
                new NewsProvider(@"fashionunited.ru", 2, 24, @"https://fashionunited.ru/rss-novosti", NewsProviderType.Fashion),
                new NewsProvider(@"Style.rbc.ru", 2, 24, @"http://static.feed.rbc.ru/rbc/internal/rss.rbc.ru/style.rbc.ru/popural.rss", NewsProviderType.Fashion),
                new NewsProvider(@"be-in.ru", 2, 24, @"http://www.be-in.ru/rss/moda", NewsProviderType.Fashion),
                new NewsProvider(@"dress-code.com.ua", 2, 24, @"http://www.dress-code.com.ua/rss/common.rss", NewsProviderType.Fashion),
                new NewsProvider(@"trendymen.ru", 2, 24, @"http://trendymen.ru/_services/rss.php", NewsProviderType.Fashion),
                new NewsProvider(@"fashionpeople.ru", 2, 24, @"http://www.fashionpeople.ru/xml/rss.xml", NewsProviderType.Fashion),

                // Tech sites
                new NewsProvider(@"3dnews.ru", 2, 24, @"http://www.3dnews.ru/news/rss"),
                //new NewsProvider(@"popmech.ru", 2, 24, @"http://www.popmech.ru/rss"),
                new NewsProvider(@"mobbit", 2, 24, @"http://mobbit.info/rss.php"),
                new NewsProvider(@"ixbt.co", 2, 24, @"http://www.ixbt.com/export/articles.rdf"),
                new NewsProvider(@"mobile-review", 2, 24, @"http://www.mobile-review.com/newslistouter/rssnewsfull.xml"),
                new NewsProvider(@"mobile-review-reviews", 2, 24, @"http://www.mobile-review.com/rss-review.xml"),
                new NewsProvider(@"tech", 2, 24, @"https://www.google.com/news?output=rss&topic=t&ned=ru_ru&cf=all&num=20"),
                new NewsProvider(@"astronet.ru", 2, 24, @"http://www.astronet.ru/db/rss.xml"),
                new NewsProvider(@"nkj.ru", 2, 24, @"http://www.nkj.ru/rss/iblock_rss_31.xml"),
                new NewsProvider(@"elementy.r", 2, 24, @"http://elementy.ru/rss/news"),
                new NewsProvider(@"postnauka.ru", 2, 24, @"http://postnauka.ru/feed"),
                new NewsProvider(@"habrahabr-startups", 2, 24, @"http://habrahabr.ru/rss/tag/%D1%81%D1%82%D0%B0%D1%80%D1%82%D0%B0%D0%BF%D1%8B"), // стартапы
                new NewsProvider(@"habrahabr", 2, 24, @"http://www.habrahabr.ru/rss/main/"),                                                     // feed/http://habrahabr.ru/rss/best/
                new NewsProvider(@"geektimes.ru", 2, 24, @"http://geektimes.ru/rss/all/"),                                                       // http://geektimes.ru/rss/best/
                //new NewsProvider(@"", 2, 24, @""),

                new NewsProvider(@"The Verge", 1, 24, @"http://www.theverge.com/rss/full.xml"),
                new NewsProvider(@"Engadget", 1, 24, @"http://www.engadget.com/rss-full.xml"),
                new NewsProvider(@"Lifehacker", 1, 24, @"http://feeds.gawker.com/lifehacker/vip"), // Lifehacker
                //new NewsProvider(@"readwriteweb", 1, 24, @"http://www.readwriteweb.com/rss.xml"),
                new NewsProvider(@"Techcrunch", 1, 24, @"http://feeds.feedburner.com/Techcrunch"), //Techcrunch
                new NewsProvider(@"Wired", 1, 24, @"http://feeds.wired.com/wired/index"),
                new NewsProvider(@"Gizmodo", 1, 24, @"http://feeds.gawker.com/gizmodo/full"),      // Gizmodo
                new NewsProvider(@"Mashable", 1, 24, @"http://feeds.mashable.com/Mashable"),
                new NewsProvider(@"arstechnica", 1, 24, @"http://feeds.arstechnica.com/arstechnica/index/"),
                new NewsProvider(@"CNET", 1, 24, @"http://news.com.com/2547-1_3-0-5.xml"),
                new NewsProvider(@"Slashdot", 1, 24, @"http://rss.slashdot.org/Slashdot/slashdot"),
                new NewsProvider(@"Google Blog", 1, 24, @"http://googleblog.blogspot.com/atom.xml"),
                new NewsProvider(@"The Next Web", 1, 24, @"http://feeds2.feedburner.com/thenextweb"),
                new NewsProvider(@"boingboing", 1, 24, @"http://boingboing.net/feed"),
                new NewsProvider(@"thinkgeek", 1, 24, @"http://www.thinkgeek.com/thinkgeek.rss"),
                new NewsProvider(@"TED Talks", 1, 24, @"http://feeds.feedburner.com/tedtalks_video"),
                new NewsProvider(@"YCombinator", 1, 24, @"https://news.ycombinator.com/rss"),
                //new NewsProvider(@"", 1, 24, @""),
            };

            Console.WriteLine("Getting news...");

            var newsAggregator = new NewsAggregator();
            Dictionary <string, List <News> > news = newsAggregator.GetNews(providers);

            Console.WriteLine("Saving news...");

            using (var sw = new StreamWriter(@"C:\rss_notaccepted.txt"))
            {
                using (var swAccept = new StreamWriter(@"C:\rss_accepted.txt"))
                {
                    foreach (string newsprovider in news.Keys)
                    {
                        NewsProvider providerInfo = providers.FirstOrDefault(x => x.ProviderName == newsprovider);

                        foreach (var newsItem in news[newsprovider])
                        {
                            if (IsNewsAcceptable(newsItem, providerInfo))
                            {
                                swAccept.WriteLine(string.Format("{0} --- {1} --- {2}", providerInfo.ProviderName, newsItem.Header, DetectTheme(newsItem)));
                            }
                            else
                            {
                                // Debug.Assert(newsItem.Description.Length < 4000);
                                sw.WriteLine(string.Format("{0} --- {1}", providerInfo.ProviderName, newsItem.Header));
                            }
                        }
                    }
                }
            }
        }
示例#29
0
文件: Program.cs 项目: 396000787/csaa
 private static void GetAbout()
 {
     NewsProvider _NewsProvider = new NewsProvider();
     //string result = _NewsProvider.GetSocietyIntroduction();
 }
示例#30
0
        public void UpdateNews()
        {
            try
            {
                var providers = new List <NewsProvider>
                {
                    // Fashion sites.
                    new NewsProvider(@"riamoda.ru", 2, NewsConstants.UpdateHours, @"http://riamoda.ru/rss.xml", NewsProviderType.Fashion),
                    new NewsProvider(@"Modanews.ru", 2, NewsConstants.UpdateHours, @"http://modanews.ru/rss/news/", NewsProviderType.Fashion),
                    new NewsProvider(@"glianec.com.u", 2, NewsConstants.UpdateHours, @"http://glianec.com.ua/?format=feed&type=rss", NewsProviderType.Fashion),
                    new NewsProvider(@"fashiontime.ru/main", 2, NewsConstants.UpdateHours, @"http://www.fashiontime.ru/rss/content.xml", NewsProviderType.Fashion),
                    new NewsProvider(@"fashiontime.ru/news", 2, NewsConstants.UpdateHours, @"http://www.fashiontime.ru/rss/content_news.xml", NewsProviderType.Fashion),
                    new NewsProvider(@"fashiontime.ru/articles", 2, NewsConstants.UpdateHours, @"http://www.fashiontime.ru/rss/content_article.xml", NewsProviderType.Fashion),
                    new NewsProvider(@"intermoda.ru", 2, NewsConstants.UpdateHours, @"http://www.intermoda.ru/rss/news", NewsProviderType.Fashion),
                    new NewsProvider(@"profashion.ru", 2, NewsConstants.UpdateHours, @"http://profashion.ru/news/rss/", NewsProviderType.Fashion),
                    new NewsProvider(@"fashionunited.ru", 2, NewsConstants.UpdateHours, @"https://fashionunited.ru/rss-novosti", NewsProviderType.Fashion),
                    new NewsProvider(@"Style.rbc.ru", 2, NewsConstants.UpdateHours, @"http://static.feed.rbc.ru/rbc/internal/rss.rbc.ru/style.rbc.ru/popural.rss", NewsProviderType.Fashion),
                    new NewsProvider(@"be-in.ru", 2, NewsConstants.UpdateHours, @"http://www.be-in.ru/rss/moda", NewsProviderType.Fashion),
                    new NewsProvider(@"dress-code.com.ua", 2, NewsConstants.UpdateHours, @"http://www.dress-code.com.ua/rss/common.rss", NewsProviderType.Fashion),
                    new NewsProvider(@"trendymen.ru", 2, NewsConstants.UpdateHours, @"http://trendymen.ru/_services/rss.php", NewsProviderType.Fashion),
                    new NewsProvider(@"fashionpeople.ru", 2, NewsConstants.UpdateHours, @"http://www.fashionpeople.ru/xml/rss.xml", NewsProviderType.Fashion),

                    // Tech sites
                    new NewsProvider(@"3dnews.ru", 2, NewsConstants.UpdateHours, @"http://www.3dnews.ru/news/rss"),
                    //new NewsProvider(@"popmech.ru", 2, NewsConstants.UpdateHours, @"http://www.popmech.ru/rss"),
                    new NewsProvider(@"mobbit", 2, NewsConstants.UpdateHours, @"http://mobbit.info/rss.php"),
                    new NewsProvider(@"ixbt.co", 2, NewsConstants.UpdateHours, @"http://www.ixbt.com/export/articles.rdf"),
                    new NewsProvider(@"mobile-review", 2, NewsConstants.UpdateHours, @"http://www.mobile-review.com/newslistouter/rssnewsfull.xml"),
                    new NewsProvider(@"mobile-review-reviews", 2, NewsConstants.UpdateHours, @"http://www.mobile-review.com/rss-review.xml"),
                    new NewsProvider(@"tech", 2, NewsConstants.UpdateHours, @"https://www.google.com/news?output=rss&topic=t&ned=ru_ru&cf=all&num=20"),
                    new NewsProvider(@"astronet.ru", 2, NewsConstants.UpdateHours, @"http://www.astronet.ru/db/rss.xml"),
                    new NewsProvider(@"nkj.ru", 2, NewsConstants.UpdateHours, @"http://www.nkj.ru/rss/iblock_rss_31.xml"),
                    new NewsProvider(@"elementy.r", 2, NewsConstants.UpdateHours, @"http://elementy.ru/rss/news"),
                    new NewsProvider(@"postnauka.ru", 2, NewsConstants.UpdateHours, @"http://postnauka.ru/feed"),
                    new NewsProvider(@"habrahabr-startups", 2, NewsConstants.UpdateHours, @"http://habrahabr.ru/rss/tag/%D1%81%D1%82%D0%B0%D1%80%D1%82%D0%B0%D0%BF%D1%8B"), // стартапы
                    new NewsProvider(@"habrahabr", 2, NewsConstants.UpdateHours, @"http://www.habrahabr.ru/rss/main/"),                                                     // feed/http://habrahabr.ru/rss/best/
                    new NewsProvider(@"geektimes.ru", 2, NewsConstants.UpdateHours, @"http://geektimes.ru/rss/all/"),                                                       // http://geektimes.ru/rss/best/
                    //new NewsProvider(@"", 2, NewsConstants.UpdateHours, @""),

                    new NewsProvider(@"The Verge", 1, NewsConstants.UpdateHours, @"http://www.theverge.com/rss/full.xml"),
                    new NewsProvider(@"Engadget", 1, NewsConstants.UpdateHours, @"http://www.engadget.com/rss-full.xml"),
                    new NewsProvider(@"Lifehacker", 1, NewsConstants.UpdateHours, @"http://feeds.gawker.com/lifehacker/vip"), // Lifehacker
                    //new NewsProvider(@"readwriteweb", 1, NewsConstants.UpdateHours, @"http://www.readwriteweb.com/rss.xml"),
                    new NewsProvider(@"Techcrunch", 1, NewsConstants.UpdateHours, @"http://feeds.feedburner.com/Techcrunch"), //Techcrunch
                    new NewsProvider(@"Wired", 1, NewsConstants.UpdateHours, @"http://feeds.wired.com/wired/index"),
                    new NewsProvider(@"Gizmodo", 1, NewsConstants.UpdateHours, @"http://feeds.gawker.com/gizmodo/full"),      // Gizmodo
                    new NewsProvider(@"Mashable", 1, NewsConstants.UpdateHours, @"http://feeds.mashable.com/Mashable"),
                    new NewsProvider(@"arstechnica", 1, NewsConstants.UpdateHours, @"http://feeds.arstechnica.com/arstechnica/index/"),
                    new NewsProvider(@"CNET", 1, NewsConstants.UpdateHours, @"http://news.com.com/2547-1_3-0-5.xml"),
                    new NewsProvider(@"Slashdot", 1, NewsConstants.UpdateHours, @"http://rss.slashdot.org/Slashdot/slashdot"),
                    new NewsProvider(@"Google Blog", 1, NewsConstants.UpdateHours, @"http://googleblog.blogspot.com/atom.xml"),
                    new NewsProvider(@"The Next Web", 1, NewsConstants.UpdateHours, @"http://feeds2.feedburner.com/thenextweb"),
                    new NewsProvider(@"BoingBoing", 1, NewsConstants.UpdateHours, @"http://boingboing.net/feed"),
                    new NewsProvider(@"ThinkGeek", 1, NewsConstants.UpdateHours, @"http://www.thinkgeek.com/thinkgeek.rss"),
                    new NewsProvider(@"TED Talks", 1, NewsConstants.UpdateHours, @"http://feeds.feedburner.com/tedtalks_video"),
                    new NewsProvider(@"YCombinator", 1, NewsConstants.UpdateHours, @"https://news.ycombinator.com/rss"),
                    //new NewsProvider(@"", 1, NewsConstants.UpdateHours, @""),
                };

                if (_dataStore.IsNeedToUpdate(NewsConstants.UpdateHours))
                {
                    Dictionary <string, List <News> > news = _newsAggregator.GetNews(providers);

                    if (news != null)
                    {
                        foreach (string providerName in news.Keys)
                        {
                            NewsProvider providerInfo = providers.FirstOrDefault(x => x.ProviderName == providerName);

                            foreach (var item in news[providerName])
                            {
                                if (IsNewsAcceptable(item, providerInfo))
                                {
                                    item.ThemeOrCategory = DetectTheme(item);

                                    InsertNewsItem(
                                        ModelAdapter.ConvertNewsToBlog(item, providerInfo));
                                }
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                _logger.Error("Exception UpdateNews", ex);
            }
        }
示例#31
0
 public NewsController()
 {
     this.PersistanceLayerConnectionString = ConfigurationManager.AppSettings["MongoDBConnectionString"];
       _repository = new RepositoryMongodb<News>(PersistanceLayerConnectionString);
       _newsProvider = new NewsProvider(PersistanceLayerConnectionString);
 }