示例#1
0
        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));
        }
示例#2
0
        public async Task <IActionResult> GetSavedPost([FromQuery] GetSavedPostRequest request)
        {
            var data = await postService.GetSavedPost(request);

            return(Ok(new ApiOkResponse(data)));
        }