public void Execute(IJobExecutionContext context) { using (RSSNewsContext db = new RSSNewsContext()) { SourcesXMLHandler xml = new SourcesXMLHandler(context.JobDetail.JobDataMap.GetString("XMLPath")); var approvedSources = xml.GetEntries(); if (approvedSources == null) { return; } // Delete sources not in XML var ToDel = db.Sources.ToList().Where(n => !approvedSources.Exists(a => a.Address == n.Address)); if (ToDel.Count() > 0) { db.Sources.RemoveRange(ToDel); db.SaveChanges(); } // Add sources and Modify categories if needed db.Sources.AddOrUpdate(p => p.Address, approvedSources.Select(n => new Source { Address = n.Address, Category = n.Category }).ToArray()); db.SaveChanges(); } }
protected void Application_Start() { AreaRegistration.RegisterAllAreas(); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); SourcesXMLHandler.CreateXMLIfNotExists(Server.MapPath("~/Sources.xml")); JobScheduler.Start(Server.MapPath("~/Sources.xml")); }