private void ScheduleExecutionCore(ScheduleCommandRequest request)
        {
            Trace.WriteLine(string.Format("Scheduling command {0} on {1}", request.Command.CommandText, request.Command.ClientName));

            var task = new ActionTask(() => ExecuteCommandCore(request.Command));

            switch (request.Trigger)
            {
            case Trigger.Single:
                task.AddTrigger(new ExactTimeTrigger(request.FirstDateTime));
                break;

            case Trigger.Daily:
                task.AddTrigger(new DailyTrigger(request.FirstDateTime.TimeOfDay));
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }
            _taskManager.AddTask(task);

            Trace.WriteLine("Command will be executed at {0}\r\n" + task.NextTime);
        }
 public Task ScheduleExecutionAsync(ScheduleCommandRequest request)
 {
     return(GetClient().ScheduleExecutionAsync(request));
 }
 public void ScheduleExecution(ScheduleCommandRequest request)
 {
     this.Handle(request, ScheduleExecutionCore);
 }
 public void ScheduleExecution(ScheduleCommandRequest request)
 {
     GetClient().ScheduleExecution(request);
 }