Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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
            });
        }
Exemplo n.º 3
0
        public ActionResult <SearchPostResponse> Search([FromBody] SearchPostRequest request)
        {
            var result = _postService.Search(request);

            return(result);
        }
Exemplo n.º 4
0
        public async Task <IActionResult> GetAsync([FromQuery] SearchPostRequest request)
        {
            var response = await _service.GetAsync(request);

            return(Ok(response));
        }