public void Execute(IJobExecutionContext context) { Log.Info(string.Format("Start! - {0}", System.DateTime.Now.ToString("r"))); var queDay = DateTime.Now.ToString("ddd").ToUpperInvariant(); var queLastRun = context.PreviousFireTimeUtc; var queTimeEnd = context.FireTimeUtc; using (var ent = new Commuticate.Repository.Entities()) { //var comm = // ent.Commuters.FirstOrDefault(c => c.Email.Equals("*****@*****.**", StringComparison.OrdinalIgnoreCase)); //var rGroup = new RouteGroup() {Commuter = comm, Description = "First Route Group"}; //ent.AddToRouteGroups(rGroup); //var route = new Route() {Commuter = comm, Description = "First Route"}; //ent.AddToRoutes(route); //var rGroupR = new RouteGroupRoute() {RouteGroup = rGroup, RouteId = route.Id}; //ent.AddToRouteGroupRoutes(rGroupR); //ent.SaveChanges(); //var rGroup = ent.RouteGroups.FirstOrDefault(g => g.Description == "First Route Group"); //var que = new Repository.Que() {Description = "John", RouteGroup = rGroup}; //var sch = new Repository.QueSchedule() {AtTime = DateTime.Now.TimeOfDay, NotifyEmail = true, OnDays = queDay, Que = que}; //ent.AddToQues(que); //ent.AddToQueSchedules(sch); //ent.SaveChanges(); var queSchedule = (from q in ent.QueSchedules where q.OnDays.Contains(queDay) //&& (q.AtTime >= queLastRun.TimeOfDay && q.AtTime < queTimeEnd.TimeOfDay) select q); using (var smtp = new SmtpClient("mail.tecknonerd.com")) { smtp.Credentials = new NetworkCredential("*****@*****.**", "fredthefish"); foreach (var schedule in queSchedule) { smtp.Send(new MailMessage("*****@*****.**", schedule.Que.RouteGroup.Commuter.Email, "Commuticate Que", "It worked: " + DateTime.Now)); schedule.LastRun = DateTime.Now; } } ent.SaveChanges(); } Log.Info(string.Format("End! - {0}", System.DateTime.Now.ToString("r"))); //Console.CursorLeft = 0; Console.WriteLine(String.Format("Scheduled: {0} - Ran: {1} ", context.ScheduledFireTimeUtc, context.FireTimeUtc)); }
public void Execute(IJobExecutionContext context) { Log.Info(string.Format("Cleaning Schedule Que [{0}]", context.FireTimeUtc)); using (var ent = new Commuticate.Repository.Entities()) { var queSchedule = (from q in ent.QueSchedules where q.RunOnce && q.LastRun != null select q); foreach (var q in queSchedule) ent.QueSchedules.DeleteObject(q); if (queSchedule.Any()) Log.Info(string.Format("Removing Single Use Schedules [{0}] - Items: {1}", context.FireTimeUtc, queSchedule.Count())); ent.SaveChanges(); } }