public List <Sheev.Common.Models.GetAllResponse> GetAllLocations([FromQuery] int?pageNumber = 1, int?pageSize = 100, string filter = "") { _context.Security = new K2SO.Auth.Security(HttpContext.Request.Headers["Authorization"]); var response = new List <Sheev.Common.Models.GetAllResponse>(); long count = 0; // Get's No of Rows Count // Get the rows response = _locationModel.GetAll(filter, ref count, pageNumber, pageSize); // Display TotalCount to Records to User long totalCount = count; // Calculating Totalpage by Dividing (No of Records / Pagesize) int totalPages = (int)Math.Ceiling(count / (double)pageSize); // if CurrentPage is greater than 1 means it has previousPage var previous_Page = (int)pageNumber > 1 ? "Yes" : "No"; // if TotalPages is greater than CurrentPage means it has nextPage var next_Page = (int)pageNumber < totalPages ? "Yes" : "No"; // Object which we are going to send in header var paginationMetadata = new { total_Count = totalCount, page_Size = pageSize, current_Page = pageNumber, total_Pages = totalPages, previous_Page, next_Page }; // Setting Header HttpContext.Response.Headers.Add("X-Pagination", JsonConvert.SerializeObject(paginationMetadata)); // Dummy Code that should be removed HttpContext.Response.Headers.Add("Access-Control-Allow-Headers", "Content-Type, Authorization, X-Pagination"); HttpContext.Response.Headers.Add("Access-Control-Expose-Headers", "X-Pagination"); return(response); }