Exemplo n.º 1
0
        public ActionResult <FeedModel> GetFeed([FromQuery] FeedSearchRequest searchRequest)
        {
            var posts     = _posts.SearchFeed(searchRequest);
            var postCount = _posts.Count(searchRequest);

            return(FeedModel.Create(searchRequest, posts, postCount));
        }
Exemplo n.º 2
0
 public int CountFeed(FeedSearchRequest search)
 {
     return(_context.Posts
            .Where(p => search.PostedBy == null || p.UserId == search.PostedBy)
            .Where(p => search.LikedBy == null || p.Interactions.Where(i => i.Type == InteractionType.LIKE)
                   .Any(i => i.UserId == search.LikedBy))
            .Where(p => search.DislikedBy == null || p.Interactions.Where(i => i.Type == InteractionType.DISLIKE)
                   .Any(i => i.UserId == search.DislikedBy))
            .Count());
 }
Exemplo n.º 3
0
 public IEnumerable <Post> SearchFeed(FeedSearchRequest search)
 {
     return(_context.Posts
            .OrderByDescending(p => p.PostedAt)
            .Where(p => search.PostedBy == null || p.UserId == search.PostedBy)
            .Where(p => search.LikedBy == null || p.Interactions.Where(i => i.Type == InteractionType.LIKE).Any(i => i.UserId == search.LikedBy))
            .Where(p => search.DislikedBy == null || p.Interactions.Where(i => i.Type == InteractionType.DISLIKE).Any(i => i.UserId == search.DislikedBy))
            .Include(p => p.User)
            .Include(p => p.Interactions).ThenInclude(i => i.User)
            .Skip((search.Page - 1) * search.PageSize)
            .Take(search.PageSize));
 }
Exemplo n.º 4
0
        public ActionResult <FeedModel> GetFeed([FromQuery] FeedSearchRequest searchRequest)
        {
            /*if (!_basicAuthenticateHelper.HandleAuthenticate(Request))
             * {
             *  return Unauthorized();
             * }*/

            var posts     = _posts.SearchFeed(searchRequest);
            var postCount = _posts.Count(searchRequest);

            return(FeedModel.Create(searchRequest, posts, postCount));
        }