public async Task <IEnumerable <RepoViewModel> > RefreshRepos(HttpContext httpContext, IStarredRepository starredRepository) { var results = new List <RepoViewModel>(); string accessToken = await httpContext.GetTokenAsync("access_token"); var github = new GitHubClient(new ProductHeaderValue("AspNetCoreGitHubAuth"), new InMemoryCredentialStore(new Credentials(accessToken))); var starredRepos = await github.Activity.Starring.GetAllForCurrent(); starredRepository.DeleteAllStarred(accessToken); if (starredRepos != null && starredRepos.Any()) { foreach (var r in starredRepos) { results.Add(new RepoViewModel(r.Url, r.Name, r.License?.Key, r.License?.Name, r.Description)); starredRepository.SaveStarred(new Db.Models.DbRepoModel { Url = r.Url, LicenseName = r.License?.Name, LicenseKey = r.License?.Key, Description = r.Description, RepoName = r.Name, UserToken = accessToken }); } } return(results); }