public List <EventHostViewData> Create(List <Event> events, IEnumerable <Pod> pods, ZipCode zipCode, IEnumerable <EventAppointmentStatsModel> eventAppointmentStatsModels, IEnumerable <OrderedPair <long, string> > corporateAccountNames = null, IEnumerable <OrderedPair <long, string> > hospitalPartnerNames = null, IEnumerable <ZipRadiusDistance> zipRadiusDistances = null) { var eventIds = events.Select(e => e.Id).ToArray(); var eventsTests = _testRepository.GetEventTestsByEventIds(eventIds); var eventHosts = _hostRepository.GetEventHostByHostIds(events.Select(x => x.HostId).ToArray()); return(events.Select(@event => { var selectedPods = @event.PodIds != null ? pods.Where(p => @event.PodIds.Contains(p.Id)).ToArray() : null; var eventAppointmentStatsModel = eventAppointmentStatsModels.Where(easm => easm.EventId == @event.Id).Single(); var eventTests = eventsTests.Where(et => et.EventId == @event.Id).ToArray(); var eventHost = eventHosts.First(ez => ez.Id == @event.HostId); return Create(@event, selectedPods, zipCode, eventAppointmentStatsModel, eventTests, eventHost, corporateAccountNames, hospitalPartnerNames, zipRadiusDistances); }).ToList()); }