public IEnumerable <RepoViewModel> GetDbRepos(string accessToken, IStarredRepository starredRepository) { var results = new List <RepoViewModel>(); var dbRepos = starredRepository.GetStarred(accessToken); if (dbRepos != null && dbRepos.Any()) { results.AddRange(dbRepos.Select(r => new RepoViewModel(r.Url, r.RepoName, r.LicenseKey, r.LicenseName, r.Description))); } return(results); }
public RepositoryController(IStarredRepository starredRepository) { _starredRepository = starredRepository; }
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); }