public async Task <ActionResult <IEnumerable <Shipping> > > GetShippings([FromQuery] ShippingParams shippingParams) { var shippings = await _shippingRepository.GetShippingsAsync(shippingParams); Response.AddPaginationHeader(shippings.CurrentPage, shippings.PageSize, shippings.TotalCount, shippings.TotalPages); return(Ok(shippings)); }
public async Task <PagedList <Shipping> > GetShippingsAsync(ShippingParams shippingParams) { var query = _context.Shippings .Include(v => v.Vender) .Include(u => u.User) .Include(l => l.ShippingLot) .Include(m => m.ShippingMethod) .OrderByDescending(o => o.ArrivalDate) .AsQueryable(); if (shippingParams.fromTimeRange > new DateTime()) { query = query.Where(t => t.ArrivalDate <= shippingParams.toTimeRange && t.ArrivalDate >= shippingParams.fromTimeRange); } if (shippingParams.VenderNo != null) { query = query.Where(i => i.Vender.VenderNo.ToUpper() == shippingParams.VenderNo.ToUpper()); } return(await PagedList <Shipping> .CreateAsync(query.ProjectTo <Shipping>(_mapper.ConfigurationProvider).AsNoTracking(), shippingParams.pageNumber, shippingParams.PageSize)); }