public CallCenterBonusListModel GetCallCenterBonus(int pageNumber, int pageSize, ModelFilterBase filter, out int totalRecords) { var callCenterbounsFilter = filter as CallCenterBonusFilter; if (callCenterbounsFilter == null || callCenterbounsFilter.PayPeriodId < 1 || string.IsNullOrEmpty(callCenterbounsFilter.PayRange)) { totalRecords = 0; return(null); } var payDatesArray = callCenterbounsFilter.PayRange.Split('-'); callCenterbounsFilter.StartDate = Convert.ToDateTime(payDatesArray[0]); callCenterbounsFilter.EndDate = Convert.ToDateTime(payDatesArray[1]); var callCenterAgents = _payPeriodRepository.GetIdNamePairofUsersByRoleOrParentRole(callCenterbounsFilter, pageNumber, pageSize, out totalRecords); if (callCenterAgents.IsNullOrEmpty()) { return(null); } var criterias = _payPeriodCriteriaRepository.GetByPayPeriodId(callCenterbounsFilter.PayPeriodId); var totalCalls = _payPeriodRepository.GetTotalCallcount(callCenterbounsFilter, callCenterAgents.Select(x => x.FirstValue)); var totalBookedAppointment = _payPeriodRepository.GetTotalBookedCustomerCount(callCenterbounsFilter.StartDate.Value, callCenterbounsFilter.EndDate.Value, callCenterAgents.Select(x => x.FirstValue)); var collection = _callCenterBonusReportingFactory.Create(callCenterAgents, totalCalls, totalBookedAppointment, criterias); return(new CallCenterBonusListModel { Collection = collection }); }