示例#1
0
        // 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));
            }
        }
示例#2
0
 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));
 }