示例#1
0
        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;
 }
示例#3
0
        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);
        }