예제 #1
0
 public async Task <BasePagingResponse <OrderDetailsResModel> > GetOrder([FromQuery] GetOrderReqModel model)
 {
     return(await _orderService.GetOrdersAsync(model));
 }
예제 #2
0
        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);
        }