// GET: api/PurchaseOrderDetails?startTime=2011-05-05&endTime=2018-05-05 // GET: api/PurchaseOrderDetails?startTime=2011-05-05&endTime=2018-05-05&pagenumber=1&pagesize=1 public IHttpActionResult Get([FromUri] PurchaseOrderDetailsParameters parameters) { if (!ModelState.IsValid) { return(BadRequest()); } try { var results = _repository.PurchaseOrderDetail.GetTrafficSumAndUnitsSoldByDays(parameters); var metadata = new { results.TotalCount, results.PageSize, results.CurrentPage, results.TotalPages, results.HasNext, results.HasPrevious }; HttpContext.Current.Response.Headers.Add("X-Pagination", JsonConvert.SerializeObject(metadata)); return(Ok(results)); } catch (Exception ex) { return(InternalServerError(ex)); } }
public PagedList <GroupedOrderDetail> GetTrafficSumAndUnitsSoldByDays(PurchaseOrderDetailsParameters parameters) { return(PagedList <GroupedOrderDetail> .ToPagedList(FindAll() .GroupBy(od => od.DueDate).Where(od => od.Key >= parameters.StartTime && od.Key <= parameters.EndTime) .Select(od => new GroupedOrderDetail { DueDate = od.Key, OrderQty = od.Sum(o => o.OrderQty), LineTotal = od.Sum(o => o.LineTotal), }) .OrderBy(od => od.DueDate), parameters.PageNumber, parameters.PageSize)); }