Exemplo n.º 1
0
        /// <summary>
        /// https://docs.microsoft.com/en-us/rest/api/azure/devops/build/builds/list?view=azure-devops-rest-5.0
        /// </summary>
        private async IAsyncEnumerable <T> EnumerateItemsAsync <T>(
            RequestBuilder builder,
            int?limit = null)
        {
            Debug.Assert(string.IsNullOrEmpty(builder.ContinuationToken));
            var count = 0;

            do
            {
                var(json, token) = await GetJsonAndContinuationTokenAsync(builder.ToString()).ConfigureAwait(false);

                var items = AzureJsonUtil.GetArray <T>(json);
                foreach (var item in items)
                {
                    yield return(item);
                }

                count += items.Length;
                if (token is null)
                {
                    break;
                }

                if (limit.HasValue && count >= limit.Value)
                {
                    break;
                }

                builder.ContinuationToken = token;
            } while (true);
        }
Exemplo n.º 2
0
        /// <summary>
        /// https://docs.microsoft.com/en-us/rest/api/azure/devops/build/builds/list?view=azure-devops-rest-5.0
        /// </summary>
        private async IAsyncEnumerable <T> EnumerateItemsAsync <T>(
            RequestBuilder builder,
            int?limit = null)
        {
            Debug.Assert(string.IsNullOrEmpty(builder.ContinuationToken));
            var count = 0;

            do
            {
                var(json, token) = await GetJsonResultAndContinuationToken(builder.ToString()).ConfigureAwait(false);

                var root  = JObject.Parse(json);
                var array = (JArray)root["value"];
                var items = array.ToObject <T[]>();
                foreach (var item in items)
                {
                    yield return(item);
                }

                count += items.Length;
                if (token is null)
                {
                    break;
                }

                if (limit.HasValue && count > limit.Value)
                {
                    break;
                }

                builder.ContinuationToken = token;
            } while (true);
        }
Exemplo n.º 3
0
        private async Task <T[]> GetJsonArrayResult <T>(RequestBuilder builder, bool cacheable = false)
        {
            var json = await GetJsonResult(builder.ToString(), cacheable).ConfigureAwait(false);

            var root  = JObject.Parse(json);
            var array = (JArray)root["value"];

            return(array.ToObject <T[]>());
        }
Exemplo n.º 4
0
        private async Task <T[]> GetJsonArrayAsync <T>(RequestBuilder builder)
        {
            var json = await GetJsonAsync(builder.ToString()).ConfigureAwait(false);

            return(AzureJsonUtil.GetArray <T>(json));
        }
Exemplo n.º 5
0
 private Task <T> GetJsonAsync <T>(RequestBuilder builder) =>
 GetJsonAsync <T>(builder.ToString());
Exemplo n.º 6
0
        private async Task <T> GetJsonResult <T>(RequestBuilder builder, bool cacheable = false)
        {
            var json = await GetJsonResult(builder.ToString(), cacheable).ConfigureAwait(false);

            return(JsonConvert.DeserializeObject <T>(json));
        }