Пример #1
0
        public virtual async Task <IActionResult> ListTasks([FromQuery] string namePrefix, [FromQuery] long?pageSize, [FromQuery] string pageToken, [FromQuery] string view)
        {
            if (pageSize < 1 || pageSize > 2047)
            {
                logger.LogError($"pageSize invalid {pageSize}");
                return(BadRequest("If provided, pageSize must be greater than 0 and less than 2048. Defaults to 256."));
            }

            (var nextPageToken, var tasks) = await repository.GetItemsAsync(
                t => string.IsNullOrWhiteSpace(namePrefix) || t.Name.StartsWith(namePrefix),
                pageSize.HasValue?(int)pageSize : 256,
                pageToken);

            var response = new TesListTasksResponse {
                Tasks = tasks.Select(t => t.Value).ToList(), NextPageToken = nextPageToken?.Replace("\"", "'")
            };

            return(TesJsonResult(response, view));
        }
Пример #2
0
        public virtual async Task <IActionResult> ListTasks([FromQuery] string namePrefix, [FromQuery] long?pageSize, [FromQuery] string pageToken, [FromQuery] string view)
        {
            var decodedPageToken =
                pageToken != null?Encoding.UTF8.GetString(Base64UrlTextEncoder.Decode(pageToken)) : null;

            if (pageSize < 1 || pageSize > 2047)
            {
                logger.LogError($"pageSize invalid {pageSize}");
                return(BadRequest("If provided, pageSize must be greater than 0 and less than 2048. Defaults to 256."));
            }

            (var nextPageToken, var tasks) = await repository.GetItemsAsync(
                t => string.IsNullOrWhiteSpace(namePrefix) || t.Name.StartsWith(namePrefix),
                pageSize.HasValue?(int)pageSize : 256,
                decodedPageToken);

            var encodedNextPageToken = nextPageToken != null?Base64UrlTextEncoder.Encode(Encoding.UTF8.GetBytes(nextPageToken)) : null;

            var response = new TesListTasksResponse {
                Tasks = tasks.Select(t => t.Value).ToList(), NextPageToken = encodedNextPageToken
            };

            return(TesJsonResult(response, view));
        }