public IActionResult SearchPosts([FromRoute] string terms, int page = 0, int pageSize = 5, bool firstPage = false, string orderBy = "ranking") { if (firstPage) { _dataService.AddHistory(terms); } var posts = _dataService.SearchPosts(terms, page, pageSize, orderBy, out var totalResults); posts.ForEach(post => post.Url = Url.Link(nameof(PostsController.GetPost), new { id = post.Id })); var result = new PaginatedResult <RankedSearchQuestion> { TotalResults = totalResults, ShowingResults = "Showing results ordered by " + orderBy + " " + (page * pageSize + 1) + "-" + (page + 1) * pageSize + ".", PreviousPage = page > 0 ? Url.Link(nameof(SearchPosts), new { page = page - 1, pageSize, orderBy }) : null, NextPage = (page + 1) * pageSize < totalResults ? Url.Link(nameof(SearchPosts), new { page = page + 1, pageSize, orderBy }) : null, Results = posts }; return(Ok(result)); }
public IActionResult GetPostsWords(string name, int page = 0, int pageSize = 5, bool firstPage = false) { if (firstPage) { _dataService.AddHistory(name); } var posts = _dataService.GetWeightedWordList(name, page, pageSize, out var totalResults); var result = new PaginatedResult <RankedWord> { TotalResults = totalResults, ShowingResults = "Showing results " + (page * pageSize + 1) + "-" + (page + 1) * pageSize + ".", PreviousPage = page > 0 ? Url.Link(nameof(GetPostsWords), new { page = page - 1, pageSize }) : null, NextPage = (page + 1) * pageSize < totalResults ? Url.Link(nameof(GetPostsWords), new { page = page + 1, pageSize }) : null, Results = posts }; return(Ok(result)); }