Esempio n. 1
0
        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);
        }