public async Task <IActionResult> GetPagging([FromQuery] GetBlogPaggingRequest request)
        {
            var result = await _blogService.GetAll(request);

            if (result.IsSuccessed == false)
            {
                return(BadRequest(result));
            }
            return(Ok(result));
        }
        public async Task <ApiResult <PageViewModel <BlogViewModel> > > GetAll(GetBlogPaggingRequest request)
        {
            var query = from p in _context.Blogs
                        join us in _context.Users on p.UserId equals us.Id
                        join c in _context.CategoryTranslations on p.CategoryId equals c.CategoryId
                        select new { p, us, c };

            //filter
            if (!String.IsNullOrEmpty(request.Keyword))
            {
                query = query.Where(x => x.p.Title.Contains(request.Keyword));
            }
            //filter
            if (!String.IsNullOrEmpty(request.CategoryUrl))
            {
                query = query.Where(x => x.c.CategoryUrl.Equals(request.CategoryUrl));
            }
            int totalRow = await query.CountAsync();

            //Pagging
            if (request.PageIndex == 0 || request.PageSize == 0)
            {
                var data = await query
                           .Select(x => new BlogViewModel()
                {
                    Id           = x.p.Id,
                    Content      = x.p.Content,
                    Created_At   = x.p.Created_At,
                    Title        = x.p.Title,
                    LikeCount    = x.p.LikeCount,
                    ImagePath    = x.p.ImagePath,
                    UserName     = x.us.UserName,
                    CategoryName = x.c.Name,
                }).ToListAsync();

                var pageViewModel = new PageViewModel <BlogViewModel>()
                {
                    TotalRecords = totalRow,
                    Items        = data,
                    PageSize     = request.PageSize,
                    PageIndex    = request.PageIndex
                };
                return(new ApiResultSuccess <PageViewModel <BlogViewModel> >(pageViewModel));
            }
            else
            {
                var data = await query.Skip((request.PageIndex - 1) *request.PageSize).Take(request.PageSize)
                           .Select(x => new BlogViewModel()
                {
                    Id           = x.p.Id,
                    Content      = x.p.Content,
                    Created_At   = x.p.Created_At,
                    Title        = x.p.Title,
                    LikeCount    = x.p.LikeCount,
                    ImagePath    = x.p.ImagePath,
                    UserName     = x.us.UserName,
                    CategoryName = x.c.Name,
                }).ToListAsync();

                var pageViewModel = new PageViewModel <BlogViewModel>()
                {
                    TotalRecords = totalRow,
                    Items        = data,
                    PageSize     = request.PageSize,
                    PageIndex    = request.PageIndex
                };
                return(new ApiResultSuccess <PageViewModel <BlogViewModel> >(pageViewModel));
            }
        }