Пример #1
0
        public async Task<IEnumerable<GeneratedUser>> GenerateRandomUsers(int limit, CancellationToken cancellationToken)
        {
            var titlesTask = nameRepository.GetTitles(cancellationToken);

            var firstNamesTask = nameRepository.GetFirstNames(cancellationToken);

            var lastNamesTask = nameRepository.GetLastNames(cancellationToken);

            await Task.WhenAll(titlesTask, firstNamesTask, lastNamesTask);
                        
            var titles = titlesTask.Result;

            var cartesianProduct = (from first in firstNamesTask.Result
                                    from last in lastNamesTask.Result
                                    select GenerateRandomUser(titles, first, last, cancellationToken)).Take(limit);

            return await Task.WhenAll(cartesianProduct);
        }