public IActionResult UpdateFromGH([FromRoute] Guid account_id) { try { JwtClaimM jwt_claim = _jwtAuth.GetClaims(Request); GHUserRequirement gh_user = _account.GetGHUserRequirement(jwt_claim.UserId, account_id); IList <RepositoryM> result = new List <RepositoryM>(); IList <GHRepository> gh_repositories; int page = 1; do { gh_repositories = _gHRepository.Get(gh_user.Name, gh_user.AccessToken, page++); foreach (var gh_repository in gh_repositories) { gh_repository.Languages = ""; if (gh_repository.Owner.Login.Equals(gh_user.Name)) { var languages = _gHRepository.GetLanguages(gh_user.Name, gh_repository.Name, gh_user.AccessToken).Keys; if (languages.Count != 0) { foreach (var language in languages) { gh_repository.Languages += "," + language; } gh_repository.Languages = gh_repository.Languages.Substring(1); } } } IList <RepositoryM> repositories = _repository.AddManyGH(account_id, gh_repositories); foreach (var repository in repositories) { result.Add(repository); } } while (gh_repositories.Count >= 20); return(Ok(result)); } catch (Exception e) { return(GetError(e)); } }
public GHUserRequirement GetGHUserRequirement(Guid user_id, Guid account_id) { try { GHUserRequirement result = _account.Where(a => a.Id.Equals(account_id) && a.UserId.Equals(user_id)) .Select(a => new GHUserRequirement { Name = a.Name, AccessToken = a.AccessToken }).FirstOrDefault(); if (result == null) { throw NotFound(account_id, "account id"); } return(result); } catch (Exception e) { throw e is RequestException ? e : _errorHandler.WriteLog("An error occurred while get github user requirement for calling API!", e, DateTime.Now, "Server", "Service_Account_GetGHUserRequirement"); } }