public void Execute() { lock (_lock) { if (_shuttingDown) return; CheckForCompletedReviews checkall = new CheckForCompletedReviews(); checkall.Check(); TaskLog logItem = new TaskLog(); logItem.SuccessDatestamp = DateTime.Now; logItem.TaskDescription = "AllReviewsChecked"; db.TaskLog.Add(logItem); db.SaveChanges(); } }
//This will check ALL open reviews to see if they have been completed. //Need to have this run at like 2 am or something because it can take a while to complete depending on //number of open reviews. There are no links to this...URL entered directly in bar will activate it. public ActionResult CheckAllReviews() { CheckForCompletedReviews checkall = new CheckForCompletedReviews(); checkall.Check(); TaskLog logItem = new TaskLog(); logItem.SuccessDatestamp = DateTime.Now; logItem.TaskDescription = "AllReviewsChecked"; db.TaskLog.Add(logItem); db.SaveChanges(); return View(); }
public void Execute() { lock (_lock) { if (_shuttingDown) return; //Instead of just blindly resetting all campaigns for the day, we're going to check the number of reviews. //Why? Incase the server times out, this task will run on start. var campaignsToReset = from c in db.Campaigns where c.OpenCampaign.Equals(true) where c.DailyLimitReached.Equals(true) select c; DateTime today = DateTime.Now.Date; foreach (var camp in campaignsToReset.ToList()) { int todaysCount = (from c in db.Reviews where c.CampaignID.Equals(camp.CampaignID) where c.SelectedDate > today select c).Count(); if (todaysCount < camp.DailyLimit && camp.DailyLimit > 0) { camp.DailyLimitReached = false; db.Entry(camp).State = EntityState.Modified; } } db.SaveChanges(); TaskLog logItem = new TaskLog(); logItem.SuccessDatestamp = DateTime.Now; logItem.TaskDescription = "DailyLimitsReset"; db.TaskLog.Add(logItem); db.SaveChanges(); } }