public JobContext(Job job) { if(job == null) throw new ArgumentNullException("job"); ActivityType = job.Type; Method = job.Method; Arguments = job.Arguments; Id = job.Id; CorrelationId = job.CorrelationId; DispatchCount = job.DispatchCount; }
public void Schedule(Activity activity, Guid? nominatedRootId = null) { if (activity == null) throw new ArgumentNullException("activity"); var jobRoot = nominatedRootId ?? Guid.NewGuid(); var job = new Job(jobRoot, typeof(JobRoot), "Run", new object[0], _now(), status: JobStatus.WaitingForChildren); var converted = _activityToContinuationConverter.Convert(activity, job); _persistenceStore.Store(converted.Jobs); job = _jobMutator.Mutate<Scheduler>(job, continuation: converted.Continuation); _router.Route(job); }
public Guid Schedule(Activity activity, Guid? correlationId = null) { if (activity == null) throw new ArgumentNullException("activity"); if (correlationId != null) { var existing = _persistenceStore.LoadBy(correlationId.Value); if (existing != null) return existing.Id; } var job = new Job(Guid.NewGuid(), typeof (JobRoot), "Run", new object[0], _now(), correlationId: correlationId, status: JobStatus.WaitingForChildren); var converted = _activityToContinuationConverter.Convert(activity, job); _persistenceStore.Store(converted.Jobs); job = _jobMutator.Mutate<Scheduler>(job, continuation: converted.Continuation); _router.Route(job); return job.Id; }