Beispiel #1
0
        public HttpResponseMessage GetNumberOfSoldUnits([FromUri] PaginatedModel pagingModel)
        {
            //TO DO - check which date parameters should be used  - [SellStartDate],[SellEndDate] ???
            var soldUnits = _purchasingService.GetNumberOfSoldUnits(DateTime.UtcNow, DateTime.UtcNow);

            if (pagingModel != null)
            {
                int count = soldUnits.Count();

                int CurrentPage  = pagingModel.PageNumber;
                int PageSize     = pagingModel.PageSize;
                int TotalCount   = count;
                int TotalPages   = (int)Math.Ceiling(count / (double)PageSize);
                var items        = soldUnits.Skip((CurrentPage - 1) * PageSize).Take(PageSize).ToList();
                var previousPage = CurrentPage > 1 ? "Yes" : "No";
                var nextPage     = CurrentPage < TotalPages ? "Yes" : "No";

                var paginationMetadata = new
                {
                    totalCount  = TotalCount,
                    pageSize    = PageSize,
                    currentPage = CurrentPage,
                    totalPages  = TotalPages,
                    previousPage,
                    nextPage
                };

                // Setting Header
                HttpContext.Current.Response.Headers.Add("Paging-Headers", JsonConvert.SerializeObject(paginationMetadata));
            }


            if (soldUnits != null)
            {
                return(Request.CreateResponse(HttpStatusCode.OK, soldUnits));
            }

            return(Request.CreateErrorResponse(HttpStatusCode.NotFound, "There were no sold units"));
        }