public async Task <object> GetBranches() { var user = await _userManager.GetUserAsync(User); var claims = await _userManager.GetClaimsAsync(user); var token = claims.FirstOrDefault(x => x.Type == "GithubAccessToken")?.Value; var allRepos = await _githubService.GetAllRepositories(token); var selectedRepos = _githubService.GetUserRepositories(_userManager.GetUserId(User)); var tasks = allRepos .Where(x => selectedRepos?.Any(y => y.FullName == x.FullName) ?? false) .AsParallel() .Select(async x => await _githubService.CreateGithubBranches(token, x)); var result = (await Task.WhenAll(tasks)).SelectMany(x => x).ToList(); return(result); }