public async Task <BasePagingResponse <OrderDetailsResModel> > GetOrder([FromQuery] GetOrderReqModel model) { return(await _orderService.GetOrdersAsync(model)); }
public async Task <BasePagingResponse <OrderDetailsResModel> > GetOrdersAsync(GetOrderReqModel model) { var result = new BasePagingResponse <OrderDetailsResModel>(); var query = _context.Orders.AsNoTracking(); if (model.Status.HasValue) { query = query.Where(o => o.Status == model.Status); } query = CommonFunctions.SortQuery(model, query); result.Total = await query.CountAsync(); if (model.Page.HasValue && model.Page >= 0 && model.PageSize.HasValue && model.PageSize > 0) { query = query.Skip(model.PageSize.Value * (model.Page.Value - 1)).Take(model.PageSize.Value); } var orders = await query.ToListAsync(); result.Items = _mapper.Map <List <Order>, List <OrderDetailsResModel> >(orders); result.Page = model.Page; result.PageSize = model.PageSize; result.TotalPage = (int)Math.Ceiling(result.Total / (double)result.PageSize); return(result); }