public async Task <PagedPostCollection> GetPagedPostsAsync(int page, int postsPerPage) { IList <PostContent>?postContents; var count = 0; try { var queryBuilder = new StrapiQueryBuilder <PostContent>() .Start(postsPerPage * page) .Limit(postsPerPage) .OrderByDescending(m => m.PublishedAt); postContents = await _client.GetAsync(queryBuilder); count = await _client.CountAsync(); } catch (Exception e) { _logger.LogError(e, "Failed to fetch from Strapi"); postContents = null; } if (postContents == null) { return(PagedPostCollection.Empty(postsPerPage)); } return(new PagedPostCollection { Posts = postContents.Select(m => m.ToBlogPost(_baseUrl)).ToList().AsReadOnly(), CurrentPage = page, TotalPosts = count, PostsPerPage = postsPerPage }); }