Exemplo n.º 1
0
 public async Task <PagedList <Truyen> > GetTruyenForPagination(TruyenParameters truyenParameters)
 {
     return(await PagedList <Truyen> .ToPagedList(FindAll().Where(m => !m.TinhTrang && m.TrangThai == 1).Include(m => m.Chuongs)
                                                  .OrderBy(truyen => truyen.TenTruyen),
                                                  truyenParameters.PageNumber,
                                                  truyenParameters.PageSize));
 }
Exemplo n.º 2
0
        public async Task <PagedList <Truyen> > GetTruyenLastestUpdateForPagination(TruyenParameters truyenParameters)
        {
            return(await PagedList <Truyen> .ToPagedList(

                       _context.Truyens.Where(m => !m.TinhTrang && m.TrangThai == 1).OrderByDescending(user => user.Chuongs.Max(d => d.ThoiGianCapNhat)).Include(m => m.Chuongs)

                       ,
                       truyenParameters.PageNumber,
                       truyenParameters.PageSize));
        }
Exemplo n.º 3
0
        public async Task <PagedList <Truyen> > GetTopViewForPagination(TruyenParameters truyenParameters)
        {
            return(await PagedList <Truyen> .ToPagedList(

                       _context.Truyens.Where(m => !m.TinhTrang && m.TrangThai == 1).OrderByDescending(user => user.Chuongs.Sum(d => d.LuotXem))
                       .Take(truyenParameters.PageSize).Include(m => m.Chuongs)

                       ,
                       truyenParameters.PageNumber,
                       truyenParameters.PageSize));
        }
Exemplo n.º 4
0
        public async Task <PagedList <Truyen> > GetTruyenOfTheLoaiForPagination(int theLoaiID, TruyenParameters truyenParameters)
        {
            return(await PagedList <Truyen> .ToPagedList(

                       (from m in _context.Truyens
                        join n in _context.PhuLucs
                        on m.TruyenID equals n.TruyenID
                        where n.TheLoaiID == theLoaiID && !m.TinhTrang && !n.TinhTrang && m.TrangThai == 1
                        select m).Include(m => m.Chuongs).Distinct().OrderBy(m => m.TruyenID)

                       ,
                       truyenParameters.PageNumber,
                       truyenParameters.PageSize));
        }
Exemplo n.º 5
0
        public async Task <IActionResult> GetTruyenForPagination([FromQuery] TruyenParameters truyenParameters)
        {
            var apiKeyAuthenticate = APICredentialAuth.APIKeyCheck(Request.Headers[NamePars.APIKeyStr]);

            if (apiKeyAuthenticate.StatusCode == ResponseCode.Error)
            {
                return(BadRequest(new ResponseDetails()
                {
                    StatusCode = ResponseCode.Exception, Message = apiKeyAuthenticate.Message
                }));
            }


            if (truyenParameters.LastestUpdate)
            {
                var truyens = await _repository.Truyen.GetTruyenLastestUpdateForPagination(truyenParameters);

                var metadata = new
                {
                    truyens.TotalCount,
                    truyens.PageSize,
                    truyens.CurrentPage,
                    truyens.TotalPages,
                    truyens.HasNext,
                    truyens.HasPrevious
                };

                Response.Headers.Add("X-Pagination", JsonConvert.SerializeObject(metadata));
                return(Ok(truyens));
            }
            else if (truyenParameters.TopView)
            {
                var truyens = await _repository.Truyen.GetTopViewForPagination(truyenParameters);

                var metadata = new
                {
                    truyens.TotalCount,
                    truyens.PageSize,
                    truyens.CurrentPage,
                    truyens.TotalPages,
                    truyens.HasNext,
                    truyens.HasPrevious
                };

                Response.Headers.Add("X-Pagination", JsonConvert.SerializeObject(metadata));
                return(Ok(truyens));
            }
            else if (truyenParameters.Sorting && truyenParameters.TheLoaiID > 0)
            {
                var truyens = await _repository.Truyen.GetTruyenOfTheLoaiForPagination(truyenParameters.TheLoaiID, truyenParameters);

                var metadata = new
                {
                    truyens.TotalCount,
                    truyens.PageSize,
                    truyens.CurrentPage,
                    truyens.TotalPages,
                    truyens.HasNext,
                    truyens.HasPrevious
                };

                Response.Headers.Add("X-Pagination", JsonConvert.SerializeObject(metadata));
                return(Ok(truyens));
            }
            else if (truyenParameters.Sorting && truyenParameters.TenTruyen != null)
            {
                List <TruyenOnSearch> truyenUnsigned = new List <TruyenOnSearch>();

                var all = await _repository.Truyen.FindTruyenForPagination();

                string unsignTenTruyen      = "";
                string unsignTenKhac        = "";
                string unsignTenTruyenParam = ConvertToUnSign(truyenParameters.TenTruyen);
                string unsignTenKhacParam   = ConvertToUnSign(truyenParameters.TenKhac);

                foreach (var item in all)
                {
                    unsignTenTruyen = ConvertToUnSign(item.TenTruyen);
                    if (item.TenKhac != null)
                    {
                        unsignTenKhac = ConvertToUnSign(item.TenKhac).ToLower();
                    }
                    if (unsignTenTruyen.Contains(unsignTenTruyenParam) || unsignTenKhac.Contains(unsignTenKhacParam))
                    {
                        var newestChapter = await _repository.Chuong.GetNewestChuongByTruyenIdAsync(item.TruyenID);

                        truyenUnsigned.Add(new TruyenOnSearch()
                        {
                            TruyenID      = item.TruyenID,
                            TenTruyen     = item.TenTruyen,
                            TenKhac       = item.TenKhac,
                            HinhAnh       = item.HinhAnh,
                            NewestChapter = newestChapter
                        });
                    }
                }

                return(Ok(truyenUnsigned));
            }
            else
            {
                if (truyenParameters.GetAll)
                {
                    var truyens = await _repository.Truyen.GetTruyenForPagination(truyenParameters);

                    var metadata = new
                    {
                        truyens.TotalCount,
                        truyens.PageSize,
                        truyens.CurrentPage,
                        truyens.TotalPages,
                        truyens.HasNext,
                        truyens.HasPrevious
                    };

                    Response.Headers.Add("X-Pagination", JsonConvert.SerializeObject(metadata));
                    return(Ok(truyens));
                }
                else
                {
                    return(BadRequest("wrong request to get truyen pagination"));
                }
            }
        }