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); }
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"); }