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); }