Ejemplo n.º 1
0
        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;
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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;
        }