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; }