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 static CreateParentCommand ParseCreateParentCommandOptions(string[] args)
 {
     var command = new CreateParentCommand();
     for (var i = 1; i < args.Length; i++)
     {
         int id;
         if (int.TryParse(args[i], out id))
         {
             command.ChildTaskIds.Add(id);
         }
         else
         {
             throw new CommandParseException("Cannot parse create parent command");
         }
     }
     return command;
 }