public async Task TestManyTasks()
        {
            var createChildrenBlock = new TransformBlock <JobEntity, List <JobEntity> >(async entity =>
            {
                var res = new List <JobEntity>();
                for (var i = 0; i < 100; i++)
                {
                    res.Add(await _client.CreateNewJobAsync(new AddJobDto("ABC", entity.JobId)));
                }

                return(res);
            });
            var adapter          = new TransformManyBlock <List <JobEntity>, JobEntity>(entities => entities);
            var updateStateBlock = new ActionBlock <JobEntity>(async entity =>
            {
                await _client.UpdateJobStatesAsync(entity.JobId,
                                                   new UpdateJobStateDto(entity.JobId % 2 == 0 ? JobState.RanToCompletion : JobState.Faulted));
            }, Helper.GetOutOfGrainExecutionOptions());
            var root = await _client.CreateNewJobAsync(new AddJobDto("rootJob"));

            Console.WriteLine($"RootJobId {root.JobId}");
            createChildrenBlock.LinkTo(adapter, new DataflowLinkOptions
            {
                PropagateCompletion = true
            });
            adapter.LinkTo(updateStateBlock, new DataflowLinkOptions
            {
                PropagateCompletion = true
            });
            await createChildrenBlock.PostToBlockUntilSuccessAsync(root);

            createChildrenBlock.Complete();
            await updateStateBlock.Completion;
            await _client.UpdateJobStatesAsync(root.JobId, new UpdateJobStateDto(JobState.RanToCompletion));

            root = await _client.GetJobEntityAsync(root.JobId);

            Assert.AreEqual(JobState.Faulted, root.CurrentJobState);
        }