public async Task <IHttpActionResult> DocMotTrangHangHoa([FromBody] PagedInput input) { try { int n = (input.PageIndex - 1) * input.PageSize; int totalItems = await db.HangHoas.CountAsync(); var hangHoaItems = await db.HangHoas .OrderBy(p => p.ID) .Skip(n) .Take(input.PageSize) .Include(p => p.Loai) .Select(p => new HangHoaOutput { hangHoaEntity = p, loaiEntity = p.Loai }) .ToListAsync(); var onePageOfData = new PagedOutput <HangHoaOutput> { Items = hangHoaItems, TotalItemCount = totalItems }; return(Ok(onePageOfData)); } catch (Exception ex) { return(BadRequest($"Lỗi không truy cập được dữ liệu. Lý do: {ex.Message}")); } }
public async Task <PagedOutput <HangHoaOutput> > GetOnePage(PagedInput input) { try { int n = (input.PageIndex - 1) * input.PageSize; int totalItems = await _db.HangHoas.CountAsync(); var hangHoaItems = await _db.HangHoas .OrderByDescending(p => p.ID) .Skip(n) .Take(input.PageSize) .Include(p => p.ChungLoai) .Select(p => new HangHoaOutput { hangHoaEntity = p, chungLoaiEntity = p.ChungLoai }) .ToListAsync(); var onePageOfData = new PagedOutput <HangHoaOutput> { Items = hangHoaItems, TotalItemCount = totalItems }; return(onePageOfData); } catch (Exception ex) { throw new Exception($"Loi khong truy cap duoc du lieu. Ly do : {ex.Message}"); } }
public async Task <IPagedOutput <HelloOutput> > GetHelloPaged() { var helloRepo = _repositoryFactory.CreateRepository <IHelloRepository>(); var data = await helloRepo.GetHelloWorld(); var output = new PagedOutput <HelloOutput>(); output.Items = data.Items.MapToList <HelloOutput>(); output.TotalCount = data.TotalCount; return(output); }
/// <summary> /// Uses CRUD service for getting paged and sorted items. /// </summary> /// <param name="input">Paging and sorting</param> /// <returns>Response object with status description and items as result if success</returns> public async Task <IActionResult> GetAll(PagedAndSortedInput input) { input.ValidateAndSetDefaults(); PagedOutput <PeopleMarkViewModel> model = null; try { model = await _crudService.GetAll(input, p => p.Mark); } catch (Exception ex) { return(StatusCode(500, ApiResult.FailResult(ex.Message))); } return(Json(ApiResult.SuccessResult(model))); }
public async Task <IHttpActionResult> DocMotTrangTheoLoai([FromBody] PagedInput input, int id) { try { var LoaiItem = await db.Loais .SingleOrDefaultAsync(p => p.ID == id); if (LoaiItem == null) { throw new Exception($"Loại ID={id} không tồn tại."); } ; int n = (input.PageIndex - 1) * input.PageSize; int totalItems = await db.HangHoas.CountAsync(p => p.LoaiID == id); var hangHoaItems = await db.HangHoas .Where(p => p.LoaiID == id) .OrderBy(p => p.ID) .Skip(n) .Take(input.PageSize) .Select(p => new HangHoaOutput { hangHoaEntity = p, loaiEntity = p.Loai }) .ToListAsync(); var onePageOfData = new PagedOutput <HangHoaOutput> { Items = hangHoaItems, TotalItemCount = totalItems }; return(Ok(onePageOfData)); } catch (Exception ex) { return(BadRequest($"Lỗi không truy cập được dữ liệu. lý do: {ex.Message}")); } }
public static async Task <IPagedOutput <T> > Paged <T, TOrder>(this IQueryable <T> query, Expression <Func <T, TOrder> > order, int pageIndex, int pageSize, bool isDesc = true) where T : class { var output = new PagedOutput <T>(); output.TotalCount = await query.CountAsync(); if (isDesc) { query = query.OrderByDescending(order); } else { query = query.OrderBy(order); } query = query.Skip((pageIndex - 1) * pageSize).Take(pageSize); output.Items = await query.ToListAsync(); return(output); }