示例#1
0
        public async Task <IActionResult> GetAlbums([FromQuery] PagingOptions pagingOptions, CancellationToken cancellationToken)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(new ApiError()
                {
                    Message = "Invalid arguments provided.",
                    Details = ModelState.FirstOrDefault(k => k.Value.Errors.Any()).Value.Errors.FirstOrDefault().ErrorMessage
                }));
            }

            pagingOptions.Limit  = pagingOptions.Limit ?? _defaultPagingOptions.Limit;
            pagingOptions.Offset = pagingOptions.Offset ?? _defaultPagingOptions.Offset;

            var albums = await _albumsService.GetAlbumsAsync(pagingOptions, cancellationToken);

            var link       = Link.CreateCollection(nameof(GetAlbums));
            var collection = PagedCollection <AlbumResource> .CreatePagedCollection(link, albums.Items, albums.TotalSize, pagingOptions);

            return(Ok(collection));
        }