示例#1
0
        public async Task <List <Blog> > GetAllBlogsByUsernameAsync(BlogParams blogParams, string username)
        {
            var query = _context.Blogs.Where(u => u.Username == username);

            return(await PagedList <Blog> .CreateAsync(
                       query.ProjectTo <Blog>(_mapper.ConfigurationProvider), blogParams.PageNumber, blogParams.PageSize));
        }
示例#2
0
        public async Task <PagedList <Blog> > GetBlogs(BlogParams blogParams)
        {
            var blogs = _context.Blogs.OrderByDescending(c => c.Created).AsQueryable();

            // PagedList is a custom class to support pagination on the client
            return(await PagedList <Blog> .CreateAsync(blogs, blogParams.PageNumber, blogParams.PageSize));
        }
示例#3
0
        public async Task <PagedList <Blog> > GetAllBlogsAsync(BlogParams blogParams)
        {
            var query = _context.Blogs.AsQueryable();

            return(await PagedList <Blog> .CreateAsync(query.ProjectTo <Blog>(_mapper.ConfigurationProvider)
                                                       .AsNoTracking(), blogParams.PageNumber, blogParams.PageSize));
        }
示例#4
0
        public async Task <ActionResult <PagedList <BlogDto> > > GetBlogs([FromQuery] BlogParams blogParams)
        {
            var blogs = await _unitOfWork.BlogRepository.GetAllBlogsAsync(blogParams);

            var blogsToReturn = _mapper.Map <IEnumerable <BlogDto> >(blogs);

            Response.AddPaginationHeader(blogs.CurrentPage, blogs.PageSize, blogs.TotalCount, blogs.TotalPages);
            return(Ok(blogsToReturn));
        }
示例#5
0
        public async Task <IActionResult> GetBlogs([FromQuery] BlogParams blogParams)
        {
            var blogs = await _repo.GetBlogs(blogParams);

            var blogsToReturn = _mapper.Map <List <BlogForListDto> >(blogs);

            // adding new headers to response for pagination
            // static method from Extension class in "Helpers" folder
            Response.AddPagination(blogs.CurrentPage, blogs.PageSize,
                                   blogs.TotalCount, blogs.TotalPages);

            return(Ok(blogsToReturn));
        }
示例#6
0
        public async Task <PagedList <Blog> > GetBlogs(BlogParams userParams)
        {
            var blogs          = _context.Blogs.OrderByDescending(u => u.CreatedTime).AsQueryable();
            var userFollowings = await GetUserFollowings(userParams.UserId);

            blogs = blogs.Where(u => userFollowings.Contains(u.UserId) || u.UserId == userParams.UserId).Include(c => c.CommentsReceived).Include(b => b.BlogLikes).Include(u => u.User).ThenInclude(p => p.Photos);
            if (userParams.BlogCategoryId != 0)
            {
                blogs = blogs.Where(b => b.BlogCategoryId == userParams.BlogCategoryId);
            }



            return(await PagedList <Blog> .CrateAsync(blogs, userParams.PageNumber, userParams.PageSize));
        }
示例#7
0
        public async Task <IActionResult> GetBlogs(int userId, [FromQuery] BlogParams blogParams)
        {
            //if (userId != int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value))
            //{
            //    return Unauthorized();
            //}

            //var currentUserId = int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value);
            var userFromRepo = await _repo.GetUser(userId);

            blogParams.UserId = userId;

            var blogs = await _repo.GetBlogs(blogParams);

            Response.AddPagination(blogs.CurrentPage, blogs.PageSize, blogs.TotalCount, blogs.TotalPages);
            var blogToReturn = _mapper.Map <IEnumerable <BlogForListDto> >(blogs);

            return(Ok(blogToReturn));
        }
示例#8
0
        public async Task <ActionResult <List <Blog> > > GetAllBlogsByUsername([FromForm] BlogParams blogParams, string username)
        {
            var blogs = await _unitOfWork.BlogRepository.GetAllBlogsByUsernameAsync(blogParams, username);

            return(blogs);
        }