private void CancelJob(ParentJob parentJob)
 {
     foreach (dynamic job in parentJob.ChildJobs)
     {
         CancelJob(job);
     }
 }
 private void ProcessCommand(CreateParentCommand command)
 {
     var parentJob = new ParentJob {Id = Interlocked.Increment(ref _lastTaskId)};
     foreach (var childJob in command.ChildTaskIds.Select(childJobId => _allJobs.Single(j => j.Id == childJobId)))
     {
         parentJob.ChildJobs.Add(childJob);
     }
     _allJobs.Add(parentJob);
 }
 private void StopJob(ParentJob parentJob)
 {
     foreach (dynamic job in parentJob.ChildJobs)
     {
         StopJob(job);
     }
 }