public ActionResult <FeedModel> GetFeed([FromQuery] FeedSearchRequest searchRequest) { var posts = _posts.SearchFeed(searchRequest); var postCount = _posts.Count(searchRequest); return(FeedModel.Create(searchRequest, posts, postCount)); }
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()); }
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)); }
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)); }