| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 | 
							- using Comal.Classes;
 
- using InABox.Clients;
 
- using InABox.Core;
 
- using InABox.Scripting;
 
- using System;
 
- namespace Comal.TaskScheduler.Shared
 
- {
 
-     public class ScheduledScriptPlugin : SchedulePlugin<ScheduledScript>
 
-     {
 
-         public override bool Execute(Schedule schedule, ScheduledScript entity)
 
-         {
 
-             if (schedule.DueDate.AddDays(0 - schedule.LeadTime) <= DateTime.Now)
 
-             {
 
-                 Logger.Send(LogType.Information,ClientFactory.UserID,"  * Executing Module.Execute()");
 
-                 DateTime duedate = DateTime.Now.AddDays(schedule.LeadTime);
 
-                 var script = new ScriptDocument(entity.Script);
 
-                 try
 
-                 {
 
-                     if (script.Compile())
 
-                     {
 
-                         bool result = false;
 
-                         try
 
-                         {
 
-                             result = script.Execute();
 
-                         }
 
-                         catch (Exception eRun)
 
-                         {
 
-                             Logger.Send(LogType.Error, ClientFactory.UserID, "Execute: " + CoreUtils.FormatException(eRun));
 
-                         }
 
-                         if (result)
 
-                         {
 
-                             Logger.Send(LogType.Information, ClientFactory.UserID, "  * Execute() returns true - updating schedule");
 
-                             schedule.DueDate = schedule.GetNextDate(schedule.Rollover.Equals(ScheduleRollover.FromDueDate) ? schedule.DueDate : duedate);
 
-                             new Client<Schedule>().Save(schedule, "Schedule Updated by Task (Due Date)");
 
-                         }
 
-                         else
 
-                             Logger.Send(LogType.Information, ClientFactory.UserID, "  * Execute() returns false - skipping schedule update");
 
-                         return true;
 
-                     }
 
-                     else
 
-                     {
 
-                         Logger.Send(LogType.Error, ClientFactory.UserID, "Script failed to Compile:");
 
-                         foreach (var line in script.Result.Split('\n'))
 
-                             Logger.Send(LogType.Information, "", line);
 
-                         return false;
 
-                     }
 
-                 }
 
-                 catch (Exception eComp)
 
-                 {
 
-                     Logger.Send(LogType.Error, ClientFactory.UserID, "Compile: "+eComp.Message);
 
-                 }
 
-             }
 
-             return false;
 
-         }
 
-     }
 
- }
 
 
  |