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)); }
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)); }