예제 #1
0
        public bool UpdateFeeds(List <FeedContract> feeds)
        {
            var ids     = feeds.Select(x => x.FeedId).ToList();
            var dbFeeds = context.Feeds.Where(x => ids.Any(f => f == x.FeedId));

            foreach (var dbfeed in dbFeeds)
            {
                dbfeed.LastUpdatedItemUrl = feeds.FirstOrDefault(x => x.FeedId == dbfeed.FeedId).LastFeedItemUrl;
                if (!string.IsNullOrEmpty(dbfeed.LastUpdatedItemUrl) && feeds.SingleOrDefault(f => f.FeedId == dbfeed.FeedId).FeedItems.Count > 0)
                {
                    dbfeed.UpdatingCount      = dbfeed.UpdatingCount == null ? 1 : dbfeed.UpdatingCount + 1;
                    dbfeed.LastUpdateDateTime = DateTime.Now;
                    BaseUpdater.CheckForChangeDuration(dbfeed, true);
                }
                else
                {
                    BaseUpdater.CheckForChangeDuration(dbfeed, false);
                }

                dbfeed.LastUpdaterVisit = DateTime.Now;
            }
            context.SaveChanges();
            GeneralLogs.WriteLog("UpdateFeeds[AsService] : " + string.Join("[br /]", dbFeeds.Select(x => x.Link)), TypeOfLog.OK);
            return(true);
        }
예제 #2
0
        protected void Application_Start()
        {
            InitLogger();

            AreaRegistration.RegisterAllAreas();
            GlobalConfiguration.Configure(WebApiConfig.Register);
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);

            BaseUpdater upd = new BaseUpdater(new GeoLite2Updater());

            logger.Info("\n___________Application_Start___________\n");
        }