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)); }
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)); }
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)); }
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)); }
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")); } } }