private IScheduledResource CreateScheduledResource(IDev2Task arg)
{
ITrigger trigger;
DateTime nextDate;
List<string> output;
using(var action = ConvertorFactory.CreateExecAction(arg.Action))
{
trigger = arg.Trigger;
nextDate = trigger.StartBoundary;
output = action.Arguments.Split(ArgWrapper).Where(a => !String.IsNullOrEmpty(a.Trim())).ToList();
}
if(output.Count == 2 && output.All(a => a.Contains(NameSeperator)))
{
var split = output.SelectMany(a => a.Split(NameSeperator)).ToList();
try
{
return new ScheduledResource(arg.Definition.Data,
arg.Definition.Settings.Enabled
? SchedulerStatus.Enabled
: SchedulerStatus.Disabled,
nextDate,
new ScheduleTrigger(arg.State, _factory.SanitiseTrigger(trigger),
_taskService, _factory), split[1])
{
Status =
arg.Definition.Settings.Enabled
? SchedulerStatus.Enabled
: SchedulerStatus.Disabled,
RunAsapIfScheduleMissed = arg.Definition.Settings.StartWhenAvailable,
UserName = arg.Definition.UserName
};
}
finally
{
arg.Dispose();
}
}
throw new InvalidScheduleException(String.Format("Invalid resource found:{0}", arg.Definition.Data)); // this should not be reachable because isvaliddev2task checks same conditions
}