public EventScheduleListModel GetEventScheduleReport(int pageNumber, int pageSize, ModelFilterBase eventScheduleListModelFilter, out int totalRecords) { var filter = eventScheduleListModelFilter as EventScheduleListModelFilter; if (filter == null) { totalRecords = 0; return(null); } var events = _eventRepository.GetEventScheduleListModel(pageNumber, pageSize, filter, out totalRecords); var eventIds = events.Select(x => x.Id).ToArray(); var hosts = _hostRepository.GetEventHosts(eventIds); var eventAppointmentStatsModels = _eventAppointmentStatsService.Get(events); var pods = _podRepository.GetPodsForEvents(eventIds); var customersAttended = _eventRepository.GetAttendedCustomers(eventIds); var noShowCustomes = _eventRepository.GetNoShowCustomers(eventIds); var mammoEnableEventIds = _eventTestRepository.GetMammoEnableEventIds(eventIds); return(_eventScheduleReportFactory.Create(events, hosts, pods, eventAppointmentStatsModels, customersAttended, noShowCustomes, mammoEnableEventIds)); }