public async Task <IPostingWarningCollection> CalculateAsync(IPostingLineCollection postingLineCollection) { NullGuard.NotNull(postingLineCollection, nameof(postingLineCollection)); Task <IPostingWarningCollection>[] calculationTasks = postingLineCollection.Select(CalculateAsync).ToArray(); IPostingWarningCollection[] postingWarningCollections = await Task.WhenAll(calculationTasks); return(BuildPostingWarningCollection(postingWarningCollections.SelectMany(postingWarningCollection => postingWarningCollection))); }