Exemplo n.º 1
0
        public override async Task <GetPostsResponse> GetPublishedPostsByCategory(GetPostsByCategoryRequest request,
                                                                                  ServerCallContext context)
        {
            var response = new GetPostsResponse();

            var categoryEntity = await _blogDbContext.Categories
                                 .SingleOrDefaultAsync(category =>
                                                       category.Slug == request.CategorySlug && category.IsActive && !category.IsDeleted);

            if (categoryEntity == null)
            {
                return(response);
            }

            var postEntities = await _blogDbContext.Posts
                               .Where(post => post.CategoryId == categoryEntity.Id)
                               .Where(post => post.IsActive && !post.IsDeleted)
                               .Where(post => post.Status == PostStatus.Published)
                               .OrderByDescending(post => post.PublishedDate)
                               .Skip((int)request.Offset)
                               .Take((int)request.Limit)
                               .ToListAsync();

            response.Posts.AddRange(postEntities.Select(postEntity => _postMapper.Map(postEntity, categoryEntity)));

            return(response);
        }
Exemplo n.º 2
0
        public GetPostsResponse GetPosts(int lastId, int count)
        {
            var posts = _postRepository.GetPosts(lastId, count);

            var postDtos = _postMapper.Map(posts);

            return(new GetPostsResponse
            {
                LastId = GetLastId(posts),
                PostsList = postDtos
            });
        }
Exemplo n.º 3
0
 public GetUserActivityResponse GetUserActivity(string name)
 {
     return(new GetUserActivityResponse
     {
         User = _responseMapper.Map(_userRepository.GetUserByCredentials(name)),
         PostList = _postMapper.Map(_postRepository.GetUserPosts(name))
     });
 }
Exemplo n.º 4
0
        public GetRandomPostResponse GetRandomPost()
        {
            var randomPost = _postRepository.GetRandomPost();

            return(new GetRandomPostResponse
            {
                Post = _postMapper.Map(randomPost)
            });
        }
Exemplo n.º 5
0
        public IList <PostModel> GetPosts()
        {
            var posts = _postRepository.GetPosts();

            return(_postMapper.Map(posts));
        }