/// <summary> /// Paginations the specified page. /// </summary> /// <param name="page">The page.</param> /// <returns></returns> public ItemPaginationModel Pagination(int?page) { ItemPaginationModel itemPagination = new ItemPaginationModel(); try { int pageSize = 10; itemPagination.PageNumber = (page ?? 1); // get no of active records int recordCount = this.repository.GetIQueryable <ItemSchema.Item>().Where <ItemSchema.Item>(a => a.RecordStatusId == (int)RecordStatuses.Active).Count(); // get active reocrds according to selected page IEnumerable <ItemSchema.Item> items = this.repository.GetIQueryable <ItemSchema.Item>().Where <ItemSchema.Item>(a => a.RecordStatusId == (int)RecordStatuses.Active).OrderBy(a => a.Id) .Skip(pageSize * (itemPagination.PageNumber - 1)).Take(pageSize).ToList <ItemSchema.Item>(); // page count calculate itemPagination.PageCount = (recordCount % pageSize) == 0 ? recordCount / pageSize : (recordCount / pageSize) + 1; // map data to items itemPagination.Items = AutoMapperConf.AutoMapperConf.Instance.Mapper.Map <List <ItemDTO> >(items); // no of pages in to an list to show in page itemPagination.PageList = Enumerable.Range(1, itemPagination.PageCount).ToList(); } catch (Exception ex) { LogHelper.LogException(ex, MethodBase.GetCurrentMethod().Name); throw ex; } return(itemPagination); }
// GET: Item /// <summary> /// Indexes the specified page. /// </summary> /// <param name="page">The page.</param> /// <returns></returns> public ActionResult Index(int?page) { ItemPaginationModel itemPaginationData = this.itemService.Pagination(page); return(View(itemPaginationData)); }