Ejemplo n.º 1
0
        public async Task <List <ApiRepo> > GetRepositoriesAsync(GetRepositoriesRequest getRepositoriesRequest, CancellationToken cancellationToken = default)
        {
            var apiAddress = $"{BaseUrl}/repositories/{getRepositoriesRequest.User}";

            var queryParameters = GetRepositoriesRequest.ToNamedValueCollection(getRepositoriesRequest);

            var fullApiAddress = BuildUri(apiAddress, queryParameters);

            using var client = new HttpClient();

            var nextPageToken = "startValue";

            var allContent = new List <ApiRepo>();

            while (nextPageToken != null)
            {
                var response = await client.GetAsync(fullApiAddress, cancellationToken);

                var content = await response.DeserializeContent <GetRepositoriesModel>(_jsonSerializerSettings);

                allContent.AddRange(content.Values);

                nextPageToken = content.Next;
            }

            return(allContent);
        }
Ejemplo n.º 2
0
        public static GetRepositoriesRequest ToGetRepositoriesRequest(this CloneVerb verb, string accessToken)
        {
            var request = new GetRepositoriesRequest(verb.User, accessToken);

            if (verb.Role != null)
            {
                request.Role = verb.Role;
            }

            if (verb.ProjectKey != null)
            {
                request.ProjectKey = verb.ProjectKey;
            }

            return(request);
        }