示例#1
0
        public IEnumerable <object> ItemsByName(string name, int PageNumber)
        {
            List <Item.Domain.Models.Item> itemList = _IGetItems.GetItemsByname(name);
            int count = itemList.Count();

            //Page size is hard coded here, as in the requirement '10' is fixed
            int CurrentPage = PageNumber;
            int TotalCount  = count;
            int TotalPages  = (int)Math.Ceiling(count / (double)10);

            itemList = itemList.Skip((CurrentPage - 1) * 10).Take(10).ToList();
            var previousPage = CurrentPage > 1 ? "Yes" : "No";
            var nextPage     = CurrentPage < TotalPages ? "Yes" : "No";

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

            HttpContext.Response.Headers.Add("Paging-Headers", JsonConvert.SerializeObject(PageDetails));

            var returnItems = from item in itemList
                              select new
            {
                item.Name,
                item.Description,
                SubCategoryName = item.SubCategory.Name,
                CategoryName    = item.SubCategory.Category.Name
            };

            return(returnItems);
        }