public async Task <List <PostViewModel> > GetSavedPost(GetSavedPostRequest request) { var currentUser = Feature.CurrentUser(httpContextAccessor, userRepository); var result = new List <Post>(); foreach (var postId in currentUser.PostSaved) { var post = await postRepository.GetByIdAsync(ObjectId.Parse(postId)); if (post != null && post.Status == ItemStatus.Active) { result.Add(post); } } if (request.FromDate != null && request.ToDate != null) { result = result.Where(x => x.CreatedDate > request.FromDate && x.CreatedDate < request.ToDate).ToList(); } switch (request.OrderType) { case OrderType.Ascending: result = result.OrderBy(x => x.CreatedDate).ToList(); break; case OrderType.Descending: result = result.OrderByDescending(x => x.ModifiedDate).ToList(); break; default: result = result.OrderBy(x => x.CreatedDate).ToList(); break; } if (request.Skip.HasValue && request.Count.HasValue) { result = result.Skip(request.Skip.Value).Take(request.Count.Value).ToList(); } return(mapper.Map <List <PostViewModel> >(result)); }
public async Task <IActionResult> GetSavedPost([FromQuery] GetSavedPostRequest request) { var data = await postService.GetSavedPost(request); return(Ok(new ApiOkResponse(data))); }