/// <summary> /// Create new job of type <see cref="jobType"/> without any triggers /// </summary> /// <param name="jobName"></param> /// <param name="jobGroup"></param> /// <param name="jobType"></param> /// <param name="dataMap"><see cref="jobType"/> specific parameters</param> /// <param name="description"></param> /// <param name="jobId"></param> public Guid CreateJob(string jobName, string jobGroup, Type jobType, Dictionary <string, object> dataMap, string description, Guid?jobId = null) { // Use DefaultGroup if jobGroup is null or empty jobGroup = (!string.IsNullOrEmpty(jobGroup)) ? jobGroup : JobKey.DefaultGroup; var jobBuilder = JobBuilder.Create(jobType); IJobDetail jobDetail = jobBuilder.WithDescription(description) .WithIdentity(jobName, jobGroup).StoreDurably(true).RequestRecovery(false) .Build(); foreach (var mapItem in dataMap) { jobDetail.JobDataMap.Add(mapItem.Key, mapItem.Value); } Guid id; using (var tran = new TransactionScope()) { id = _persistenceStore.UpsertJobKeyIdMap(jobName, jobGroup, jobId); _scheduler.AddJob(jobDetail, true); tran.Complete(); } return(id); }