public BaseResult AddTrigger(AddTriggerInput input) { var result = new BaseResult(); try { TriggerBuilder triggerBuilder = TriggerBuilder .Create() .ForJob(input.Job, input.Group); if (!string.IsNullOrEmpty(input.Name)) { triggerBuilder = triggerBuilder.WithIdentity(input.Name); } switch (input.TriggerType) { case "Simple": triggerBuilder = triggerBuilder.WithSimpleSchedule(x => { if (input.RepeatForever) { x.RepeatForever(); } else { x.WithRepeatCount(input.RepeatCount); } x.WithInterval(TimeSpan.FromMilliseconds(input.RepeatInterval)); }); if (!string.IsNullOrEmpty(input.StartDate)) { var startDate = DateTimeOffset.Parse(input.StartDate); triggerBuilder.StartAt(startDate); } break; case "Cron": triggerBuilder = triggerBuilder.WithCronSchedule(input.CronExpression); break; default: throw new ArgumentOutOfRangeException(); } _schedulerProvider.Scheduler.ScheduleJob(triggerBuilder.Build()); result.Success = true; } catch (Exception ex) { result.ErrorMessage = ex.Message; } return(result); }
private AddTriggerOutput AssertTriggerJobDataMap( AddTriggerInput input, Action <IDictionary <string, object> > assertAction, params RegisteredInputType[] inputTypes) { var stub = new SchedulerHostStub(); var command = new AddTriggerCommand(() => stub.Value, inputTypes); AddTriggerOutput result = (AddTriggerOutput)command.Execute(input); result.AssertSuccessfull(); assertAction(stub.GetSingleGroup().GetSingleJob().GetSingleTrigger().TriggerJobData); return(result); }
private AddTriggerOutput AssertTriggerType(AddTriggerInput input, Action <TriggerType> assertAction) { var stub = new SchedulerHostStub(); var command = new AddTriggerCommand(() => stub.Value, new RegisteredInputType[0]); AddTriggerOutput result = (AddTriggerOutput)command.Execute(input); result.AssertSuccessfull(); TriggerStub trigger = stub.GetSingleGroup().GetSingleJob().GetSingleTrigger(); assertAction(trigger.Trigger); return(result); }