public async Task <GetPaginatedLocationPostsResponse> GetPaginatedPostsByLocation(GetPaginatedLocationPostsRequest req) { var postsFromDb = _dbContext.UserPosts.Include(x => x.Owner).Include(x => x.Photos).ToList(); var postsInRange = new List <GetPostResponse>(); postsFromDb.ForEach(post => { if (CoordinateHelper.IsCoordinateInRange(post.Latitude, post.Longitude, req.Latitude, req.Longitude, req.Range)) { postsInRange.Add(_mapper.Map <GetPostResponse>(post)); } }); postsInRange = postsInRange.OrderByDescending(x => x.CreationDate).Skip((req.Page - 1) * req.MaxPerPage).Take(req.MaxPerPage).ToList(); return(new GetPaginatedLocationPostsResponse { Latitude = req.Latitude, Longitude = req.Longitude, MaxPerPage = req.MaxPerPage, Page = req.Page, Posts = postsInRange }); }