public ListModelBase <T, N> GetData(N filter) { var model = Method(_pageNumber, PageSize, filter, out _totalRecords); if (_totalRecords < 1) { return(model); } Status = (_pageNumber * PageSize) / _totalRecords; if (_logger != null) { _logger.Info("Total Number of Records: " + _totalRecords + " Current Page: " + _pageNumber); } if (Status > 100) { Status = 100; } if (_model == null) { _model = model; } else { var collection = _model.Collection.ToList(); collection.AddRange(model.Collection); _model.Collection = collection; } if ((_pageNumber * PageSize) < _totalRecords) { _pageNumber++; GetData(filter); } _model.Filter = filter; return(_model); }
public ActionResult CallQueueEstimatedCustomerReport(HealthPlanCallQueueListModelFilter filter = null, int pageNumber = 1) { int totalRecords; filter = filter ?? new HealthPlanCallQueueListModelFilter(); filter.ShowMailRoundCriteria = true; ListModelBase <HealthPlanCallQueueViewModel, HealthPlanCallQueueListModelFilter> model = null; totalRecords = 0; if (filter.HealthPlanId > 0) { model = _callQueueCriteriaService.GetHealthPlanCallQueueList(pageNumber, _pageSize, filter, out totalRecords); } model = model ?? new HealthPlanCallQueueListModel(); model.Filter = filter; var currentAction = ControllerContext.RouteData.Values["action"].ToString(); Func <int, string> urlFunc = pn => Url.Action(currentAction, new { pageNumber = pn, filter.HealthPlanId, filter.CallQueueId, }); model.PagingModel = new PagingModel(pageNumber, _pageSize, totalRecords, urlFunc); return(View(model)); }