public async Task<IHttpActionResult> Get(int id, int page) { var projectCommentsCount = await this.commentsService.ProjectCommentsCount(id); var lastPage = this.GetLastPage(projectCommentsCount); var username = this.User.Identity.IsAuthenticated ? this.CurrentUser.UserName : string.Empty; var model = new CommentsPageResponseModel { Comments = await this.commentsService .ProjectComments(id, page) .Project() .To<CommentResponseModel>(new { username }) .ToListAsync(), IsLastPage = page == lastPage }; return this.Data(model); }
public async Task<IHttpActionResult> CommentsByUser(string username, int page) { var userCommentsCount = await this.commentsService.UserCommentsCount(username); var lastPage = this.GetLastPage(userCommentsCount); // TODO: extract to common logic for last page // TODO: Extract to attribute to check valid page if possible if (page < 1 || page > lastPage) { return this.Data(false, Constants.InvalidPageNumber); } var model = new CommentsPageResponseModel { Comments = await this.commentsService .UserComments(username, page) .Project() .To<CommentResponseModel>() .ToListAsync(), IsLastPage = page == lastPage, CurrentPage = page, LastPage = lastPage }; return this.Data(model); }