private IQueryable <Post> ApplyFilter(IQueryable <Post> query, SearchPostRequest request) { if (!string.IsNullOrWhiteSpace(request.Tag)) { query = query.Where(i => i.PostTags.Select(i => i.Tag.Name).Contains(request.Tag)); } return(query); }
public async Task <Response> GetAsync(SearchPostRequest request) { var query = _context.Posts.AsQueryable(); query = ApplyInclude(query); query = query.OrderByDescending(i => i.CreatedAt); query = ApplyFilter(query, request); var list = await query.ToListAsync(); var response = _mapper.Map <List <PostModel> >(list); return(new PostsResponse { BlogPosts = response, PostsCount = response.Count }); }
public ActionResult <SearchPostResponse> Search([FromBody] SearchPostRequest request) { var result = _postService.Search(request); return(result); }
public async Task <IActionResult> GetAsync([FromQuery] SearchPostRequest request) { var response = await _service.GetAsync(request); return(Ok(response)); }