public ListModelBase <InterviewInboundViewModel, InterviewInboundFilter> GetInterviewInboundReportList(int pageNumber, int pageSize, ModelFilterBase filter, out int totalRecords) { filter = filter ?? new InterviewInboundFilter(); var interviewInboundFilter = filter as InterviewInboundFilter ?? new InterviewInboundFilter(); var responseVendorReportFilter = new ResponseVendorReportFilter { StartDate = interviewInboundFilter.StartDate, EndDate = interviewInboundFilter.EndDate, AccountId = interviewInboundFilter.AccountId, CustomTags = interviewInboundFilter.CustomTags }; var customerIds = _customerRepository.GetCustomersByCustomTag(responseVendorReportFilter, pageNumber, pageSize, out totalRecords); //var customerIds = _callRepository.GetForInterviewReport(filter as InterviewInboundFilter, pageNumber, pageSize, out totalRecords); if (customerIds.IsNullOrEmpty()) { return(null); } var calls = _callRepository.GetCallsForInterviewReport(filter as InterviewInboundFilter, customerIds); var customers = customerIds.Any() ? _customerRepository.GetCustomers(customerIds.ToArray()) : new List <Customer>(); //var eventCustomers = _eventCustomerRepository.GetEventCustomersByEventIdsCustomerIds(eventIds, customerIds) ?? new List<EventCustomer>(); var eventCustomers = _eventCustomerRepository.GetByEventIdsOrCustomerIds(interviewInboundFilter.StartDate, customerIds) ?? new List <EventCustomer>(); var eventCustomerIds = eventCustomers.Select(x => x.Id); var eventIds = eventCustomers.Select(x => x.EventId).ToArray(); var events = _eventRepository.GetEvents(eventIds); var chaseOutbounds = _chaseOutboundRepository.GetByCustomerIds(customerIds); var customerChaseCampaigns = _chaseCampaignRepository.GetCustomerChaseCampaignsByCustomerIds(customerIds.ToArray()); var chaseCampaignIds = customerChaseCampaigns.Select(x => x.ChaseCampaignId).Distinct(); var chaseCampaigns = _chaseCampaignRepository.GetByIds(chaseCampaignIds); var appointmentIds = eventCustomers.Where(x => x.AppointmentId.HasValue).Select(x => x.AppointmentId.Value); var appointments = _appointmentRepository.GetByIds(appointmentIds); var eventAppointmentCancellatonLogs = _eventAppointmentCancellationLogRepository.GetByEventCustomerIds(eventCustomerIds); var noteIds = eventAppointmentCancellatonLogs.Where(x => x.NoteId.HasValue).Select(x => x.NoteId.Value); var customerCallNotes = _customerCallNotesRepository.GetByIds(noteIds); var eventIdStaffIdPairs = _eventRepository.GetEventStaffPairs(eventIds); var orgRoleUserIds = eventIdStaffIdPairs.Select(x => x.SecondValue).Distinct().ToArray(); var organizationRoleUsers = _organizationRoleUserRepository.GetOrganizationRoleUsers(orgRoleUserIds); var userIds = organizationRoleUsers.Select(x => x.UserId).Distinct().ToList(); var users = _userRepository.GetUsers(userIds); return(_interviewInboundReportFactory.Create(eventCustomers, customers, chaseOutbounds, customerChaseCampaigns, chaseCampaigns, calls, appointments, events, eventAppointmentCancellatonLogs, customerCallNotes, eventIdStaffIdPairs, organizationRoleUsers, users)); }
public void GetOrganizationRoleUsersReturnsUsers() { var organizationRoleUserIds = new List <long> { 1, 2, 3 }; List <OrganizationRoleUser> organizationRoleUsers = _organizationRoleUserRepository. GetOrganizationRoleUsers(organizationRoleUserIds); Assert.IsNotNull(organizationRoleUsers, "Null collection of Organization Role Users returned."); Assert.IsNotEmpty(organizationRoleUsers, "Empty collection of Organization Role Users returned."); }
public ListModelBase <CallQueueExcludedCustomerReportModel, CallQueueExcludedCustomerReportModelFilter> GetCallQueueExcludedCustomerReport(int pageNumber, int pageSize, ModelFilterBase filter, out int totalRecords) { var callQueueFilter = filter as CallQueueExcludedCustomerReportModelFilter; var customers = _customerRepository.GetCallQueueExcludedCustomers(callQueueFilter, pageNumber, pageSize, out totalRecords); if (customers == null || !customers.Any()) { return(null); } var customerIds = customers.Select(c => c.CustomerId).ToArray(); var customerEligibilities = _customerEligibilityRepository.GetCustomerEligibilityByCustomerIdsAndYear(customerIds, DateTime.Today.Year); if (customerEligibilities.IsNullOrEmpty()) { customerEligibilities = new List <CustomerEligibility>(); } var customTags = _corporateCustomerCustomTagRepository.GetByCustomerIds(customerIds); var prospectCustomers = _prospectCustomerRepository.GetProspectCustomersByCustomerIds(customerIds); var eventCustomers = _eventCustomerRepository.GetByCustomerIds(customerIds); eventCustomers = eventCustomers.Where(x => x.AppointmentId.HasValue && x.NoShow == false); var eventIds = eventCustomers.Select(x => x.EventId).ToArray(); var events = _eventRepository.GetEvents(eventIds); var orgRoleUsers = _organizationRoleUserRepository.GetOrganizationRoleUsers(customerIds); var userIds = orgRoleUsers.Select(x => x.UserId).ToList(); var users = _userRepository.GetUsers(userIds); var targetedCustomers = _customerTargetedRepository.GetCustomerTargetedByCustomerIdsAndYear(customerIds, DateTime.Today.Year); if (callQueueFilter.CampaignId > 0) { var zipIds = _callQueueCustomerRepository.GetAccountZip(callQueueFilter.HealthPlanId); var callQueueCustomers = _callQueueCustomerRepository.GetCallQueueCustomersForRejectedList(customerIds, callQueueFilter.CampaignId, callQueueFilter.HealthPlanId); var account = ((IUniqueItemRepository <CorporateAccount>)_corporateAccountRepository).GetById(callQueueFilter.HealthPlanId); var criterias = _healthPlanCallQueueCriteriaRepository.GetByCampaignId(callQueueFilter.CampaignId); var criteria = criterias.First(); var accountCallQueueSetting = (_callQueueSettingRepository.GetByAccountIdAndCallQueueId(callQueueFilter.HealthPlanId, criteria.CallQueueId)); return(_callQueueExcludedCustomerReportListModelFactory.Create(customers, customTags, prospectCustomers, eventCustomers, events, orgRoleUsers, users, callQueueCustomers, zipIds, account, accountCallQueueSetting, customerEligibilities, targetedCustomers)); } return(_callQueueExcludedCustomerReportListModelFactory.Create(customers, customTags, prospectCustomers, eventCustomers, events, orgRoleUsers, users, null, null, null, null, customerEligibilities, targetedCustomers)); }
public ListModelBase <RefundRequestBasicInfoModel, RefundRequestListModelFilter> GetPendingRequests(int pageNumber, int pageSize, ModelFilterBase filter, out int totalRecords) { var refundRequestFilter = filter as RefundRequestListModelFilter; var requests = _refundRequestRepository.Get(pageNumber, pageSize, refundRequestFilter, out totalRecords); if (requests == null || requests.Count() < 1) { return(null); } var customerIds = requests.Select(r => r.CustomerId).ToArray(); var customers = _customerRepository.GetCustomers(customerIds); var eventIds = requests.Select(r => r.EventId).Distinct().ToArray(); var eventCustomers = _eventCustomerRepository.GetEventCustomersByEventIdsCustomerIds(eventIds, customerIds); var appointmentCancellationLog = new List <EventAppointmentCancellationLog>(); if (!eventCustomers.IsNullOrEmpty()) { var cancellationLog = _eventAppointmentCancellationLogRepository.GetByEventCustomerIds(eventCustomers.Select(x => x.Id)); if (!cancellationLog.IsNullOrEmpty()) { appointmentCancellationLog.AddRange(cancellationLog); } } var events = _eventRepository.GetEventswithPodbyIds(eventIds); var hosts = _hostRepository.GetEventHosts(eventIds); var orders = _orderRepository.GetOrderByOrderIds(requests.Select(r => r.OrderId)); var orgRoleUserIds = requests.Select(r => r.RequestedByOrgRoleUserId).Distinct().ToArray(); if (refundRequestFilter.RefundRequestStatus < 0 || refundRequestFilter.RefundRequestStatus == (int)RequestStatus.Resolved || refundRequestFilter.RefundRequestStatus == (int)RequestStatus.Reverted) { var processedbyOrgRoleUserIds = requests.Where(r => r.RefundRequestResult != null).Select(r => r.RefundRequestResult.ProcessedByOrgRoleUserId).Distinct().ToArray(); if (processedbyOrgRoleUserIds.Count() > 0) { orgRoleUserIds = orgRoleUserIds.Concat(processedbyOrgRoleUserIds).ToArray(); } } var bookedByOrgRoleUserIds = orders.Select(o => o.DataRecorderMetaData.DataRecorderCreator.Id).ToArray(); orgRoleUserIds = orgRoleUserIds.Concat(bookedByOrgRoleUserIds).ToArray(); var idNamePairs = _organizationRoleUserRepository.GetNameIdPairofUsers(orgRoleUserIds); var organizationRoleUsers = _organizationRoleUserRepository.GetOrganizationRoleUsers(orgRoleUserIds); var roles = _roleRepository.GetAll(); return(_refundRequestListFactory.Create(requests, customers, events, hosts, idNamePairs, organizationRoleUsers, roles, orders, eventCustomers, appointmentCancellationLog)); }
public void PollforDirectMailNotification() { try { var activityDate = DateTime.Now; var campaignActivities = _campaignActivityRepository.GetActivitiesByDateTypeId(activityDate.Date, (long)CampaignActivityType.DirectMail); if (campaignActivities != null && campaignActivities.Any()) { _logger.Info(string.Format("Activities Count {0} Found for Today {1}: ", campaignActivities.Count(), activityDate.Date)); foreach (var campaignActivity in campaignActivities) { var campaignActivityAssignments = _campaignActivityAssignmentRepository.GetByCampaignActivityId(campaignActivity.Id); if (campaignActivityAssignments != null && campaignActivities.Any()) { var orgRolesUsers = _organizationRoleUserRepository.GetOrganizationRoleUsers(campaignActivityAssignments.Select(x => x.AssignedToOrgRoleUserId)); var users = _userRepository.GetUsers(orgRolesUsers.Select(x => x.UserId).Distinct().ToList()); var campaign = _campaignRepository.GetById(campaignActivity.CampaignId); var healthPlan = _organizationRepository.GetOrganizationbyId(campaign.AccountId); foreach (var user in users) { if (user.Email == null || string.IsNullOrEmpty(user.Email.ToString())) { _logger.Info("No Email Found For User " + user.NameAsString); continue; } _logger.Info("Sending Direct Mail to Email Id : " + user.Email); var createdByOrgRoleUser = orgRolesUsers.First(x => x.UserId == user.Id); var model = _emailNotificationModelsFactory.GetDirectMailActivityNotificationViewModel(user.NameAsString, campaign.Name, healthPlan.Name, campaign.CustomTags); _notifier.NotifySubscribersViaEmail(NotificationTypeAlias.DirectMailActivityNotification, EmailTemplateAlias.DirectMailActivityEmailReminder, model, new string[] { user.Email.ToString() }, user.Id, createdByOrgRoleUser.Id, "Direct Mail Activity Reminder"); } } else { _logger.Info("No Assignment Found for Activity " + campaignActivity.Id); } } } else { _logger.Info("No Activity scheduled for Today Date: " + activityDate.ToShortDateString()); } } catch (Exception ex) { _logger.Error("Exception Message: " + ex.Message + " Stack Trace" + ex.StackTrace); } }
public ListModelBase <CustomAppointmentsBookedModel, CustomAppointmentsBookedListModelFilter> GetCustomAppointmentsBooked(int pageNumber, int pageSize, ModelFilterBase filter, out int totalRecords) { var customFilter = filter as CustomAppointmentsBookedListModelFilter; customFilter = customFilter ?? new CustomAppointmentsBookedListModelFilter(); var appFilter = new AppointmentsBookedListModelFilter { AccountId = customFilter.AccountId, FromDate = customFilter.FromDate, ToDate = customFilter.ToDate, Tag = customFilter.Tag }; var eventCustomers = _eventCustomerRepository.GetEventCustomersbyRegisterationDate(pageNumber, pageSize, appFilter, out totalRecords); if (eventCustomers.IsNullOrEmpty()) { return(null); } var appointments = _appointmentRepository.GetByIds(eventCustomers.Where(ec => ec.AppointmentId.HasValue).Select(ec => ec.AppointmentId.Value).ToList()); var eventIds = eventCustomers.Select(ec => ec.EventId).Distinct().ToArray(); var model = _eventReportingService.GetEventVolumeModel(eventCustomers.Select(ec => ec.EventId).Distinct().ToArray()); var customers = _customerRepository.GetCustomers(eventCustomers.Select(ec => ec.CustomerId).Distinct().ToArray()); var customerIds = customers.Select(x => x.CustomerId); var orders = _orderRepository.GetAllOrdersByEventCustomerIds(eventCustomers.Select(ec => ec.Id).ToArray(), true); var eventPackages = _eventPackageRepository.GetbyEventIds(eventIds); var eventTests = _eventTestRepository.GetByEventIds(eventIds); var orgRoleUserIds = eventCustomers.Where(ec => ec.DataRecorderMetaData != null && ec.DataRecorderMetaData.DataRecorderCreator != null).Select(ec => ec.DataRecorderMetaData.DataRecorderCreator.Id).ToList(); var eventAppointmentChangeLogs = _eventAppointmentChangeLogRepository.GetByEventCustomerIds(eventCustomers.Select(ec => ec.Id).ToArray()).ToArray(); orgRoleUserIds.AddRange(eventAppointmentChangeLogs.Select(eacl => eacl.CreatedByOrgRoleUserId)); var registeredbyAgent = _organizationRoleUserRepository.GetOrganizationRoleUsers(orgRoleUserIds); var roles = _roleRepository.GetAll(); var registeredbyAgentNameIdPair = _organizationRoleUserRepository.GetNameIdPairofUsers(orgRoleUserIds.ToArray()).ToArray(); var primaryCarePhysicians = _primaryCarePhysicianRepository.GetByCustomerIds(eventCustomers.Select(ec => ec.CustomerId).Distinct().ToArray()); var languages = _languageRepository.GetAll(); return(_customAppointmentsBookedModelFactory.Create(eventCustomers, appointments, orders, model, customers, registeredbyAgent, roles, registeredbyAgentNameIdPair, eventAppointmentChangeLogs, primaryCarePhysicians, eventPackages, eventTests, languages)); }
public ListModelBase <KynCustomerModel, KynCustomerModelFilter> GetKynCustomerReport(int pageNumber, int pageSize, ModelFilterBase filter, out int totalRecords) { var kynfilter = filter as KynCustomerModelFilter; var eventCustomers = _eventCustomerRepository.GetKynEventCustomers(pageNumber, pageSize, kynfilter, out totalRecords); if (eventCustomers.IsNullOrEmpty()) { return(new KynCustomerListModel()); } var eventIds = eventCustomers.Select(ec => ec.EventId).Distinct().ToArray(); var eventCustomerIds = eventCustomers.Select(ec => ec.Id).Distinct().ToArray(); var healthAssessments = _healthAssessmentRepository.GetCustomerHealthInfoByEventCustomerIds(eventCustomerIds); var healthAssessmentsOrgRoleUserIds = healthAssessments.Where(ha => ha.DataRecorderMetaData != null && ha.DataRecorderMetaData.DataRecorderCreator != null).Select(ha => ha.DataRecorderMetaData.DataRecorderCreator.Id).ToList(); var healthAssessmentsbyAgentNameIdPair = _organizationRoleUserRepository.GetNameIdPairofUsers(healthAssessmentsOrgRoleUserIds.ToArray()).ToArray(); var healthAssessmentModifiedByAgent = _organizationRoleUserRepository.GetOrganizationRoleUsers(healthAssessmentsOrgRoleUserIds.ToArray()).ToArray(); var customers = _customerRepository.GetCustomers(eventCustomers.Select(ec => ec.CustomerId).Distinct().ToArray()); var events = _eventRepository.GetEventswithPodbyIds(eventIds); var pods = _podRepository.GetPodsForEvents(eventIds); var appointments = _appointmentRepository.GetAppointmentsForEvents(eventIds); var showKyn = kynfilter != null && kynfilter.ShowOnlyKyn; var orgRoleUserIds = eventCustomers.Where(ec => ec.DataRecorderMetaData != null && ec.DataRecorderMetaData.DataRecorderCreator != null).Select(ec => ec.DataRecorderMetaData.DataRecorderCreator.Id).ToList(); var registeredbyAgent = _organizationRoleUserRepository.GetOrganizationRoleUsers(orgRoleUserIds); var roles = _roleRepository.GetAll(); var registeredbyAgentNameIdPair = _organizationRoleUserRepository.GetNameIdPairofUsers(orgRoleUserIds.ToArray()).ToArray(); var customerIds = customers.Select(c => c.CustomerId).ToArray(); var customTags = _customTagRepository.GetByCustomerIds(customerIds); var corporateAccountNames = _corporateAccountRepository.GetEventIdCorporateAccountNamePair(eventIds); var hospitalPartnerNames = _hospitalPartnerRepository.GetEventIdHospitalPartnerNamePair(eventIds); return(_kynCustomerReportingFactory.Create(eventCustomers, events, customers, appointments, pods, showKyn, registeredbyAgent, roles, registeredbyAgentNameIdPair, customTags, corporateAccountNames, hospitalPartnerNames, healthAssessments, healthAssessmentsbyAgentNameIdPair, healthAssessmentModifiedByAgent)); }
public OutboundCallQueueListModel GetOutboundCallQueueUpsellAndConfirmation(OutboundCallQueueFilter filter, CallQueue callQueue, int pageSize, long criteriaId, out int totalRecords) { var callQueueCustomers = _callQueueCustomerRepository.GetCallQueueCustomerForUpsellAndConfirmation(filter, filter.PageNumber, pageSize, callQueue, criteriaId, out totalRecords); if (callQueueCustomers.IsNullOrEmpty()) { return(null); } var eventIds = callQueueCustomers.Where(x => x.EventId.HasValue).Select(x => x.EventId.Value).Distinct(); var customerIds = callQueueCustomers.Where(cqc => cqc.CustomerId.HasValue && cqc.CustomerId.Value > 0).Select(cqc => cqc.CustomerId.Value).Distinct().ToArray(); var eventCustomers = _eventCustomerRepository.GetByEventIds(eventIds); eventCustomers = eventCustomers.Where(ec => customerIds.Contains(ec.CustomerId)); var orgRoleUserIds = eventCustomers.Where(ec => ec.DataRecorderMetaData != null && ec.DataRecorderMetaData.DataRecorderCreator != null).Select(ec => ec.DataRecorderMetaData.DataRecorderCreator.Id).ToList(); var registeredbyAgent = _organizationRoleUserRepository.GetOrganizationRoleUsers(orgRoleUserIds); var roles = _roleRepository.GetAll(); // var registeredbyAgentNameIdPair = _organizationRoleUserRepository.GetNameIdPairofUsers(orgRoleUserIds.ToArray()).ToArray(); var appointment = _appointmentRepository.GetByIds(eventCustomers.Where(ec => ec.AppointmentId.HasValue).Select(ec => ec.AppointmentId.Value)); var events = _eventRepository.GetEventswithPodbyIds(eventIds).ToList(); var hosts = _hostRepository.GetEventHosts(eventIds).ToList(); var pods = _podRepository.GetPodsForEvents(eventIds); IEnumerable <Customer> customers = _customerRepository.GetCustomers(customerIds); var callQueueCustomerCalls = _callCenterCallRepository.GetCallForCallQueueCustomerList(customerIds, null); IEnumerable <CallCenterNotes> callCenterNotes = null; if (callQueueCustomerCalls != null && callQueueCustomerCalls.Any()) { callCenterNotes = _callCenterNotesRepository.GetByCallIds(callQueueCustomerCalls.Select(s => s.CallId)); } return(_outboundCallQueueListModelFactory.CallQueueCustomersForUpsellAndConfimration(callQueueCustomers, customers, callQueueCustomerCalls, callCenterNotes, events, hosts, pods, appointment, eventCustomers, registeredbyAgent, roles)); }
private SalesRepTerritory GetSalesRepTerritory(TerritoryEntity territoryEntity) { IEnumerable <long> organizationRoleUserIds = territoryEntity. OrganizationRoleUserTerritory.Select(orut => orut.OrganizationRoleUserId); List <OrganizationRoleUser> organizationRoleUsers = _organizationRoleUserRepository. GetOrganizationRoleUsers(organizationRoleUserIds); List <OrderedPair <OrganizationRoleUser, RegistrationMode> > owningUsersAndEventTypes = organizationRoleUsers.Select(oru => new OrderedPair <OrganizationRoleUser, RegistrationMode> (oru, (RegistrationMode)(territoryEntity.OrganizationRoleUserTerritory. Single(orut => orut.OrganizationRoleUserId == oru.Id).EventTypeSetupPermission))). ToList(); List <OrderedPair <long, long> > userSalesRepId = owningUsersAndEventTypes.Select(ouet => _organizationRoleUserRepository. GetSalesRepUser(ouet.FirstValue)).ToList(); return(_territoryFactory.CreateSalesRepTerritory(territoryEntity, owningUsersAndEventTypes, userSalesRepId)); }
public ListModelBase <HourlyAppointmentBookedModel, HourlyAppointmentsBookedListModelFilter> GetHourlyAppointmentsBooked(int pageNumber, int pageSize, ModelFilterBase filter, out int totalRecords) { var customFilter = filter as HourlyAppointmentsBookedListModelFilter; customFilter = customFilter ?? new HourlyAppointmentsBookedListModelFilter(); var appFilter = new AppointmentsBookedListModelFilter { AccountId = customFilter.AccountId, FromDate = customFilter.FromDate, ToDate = customFilter.ToDate, ShowCustomersWithAppointment = customFilter.ShowCustomersWithAppointment, IsHealthPlanEvent = true }; var eventCustomers = _eventCustomerRepository.GetEventCustomersbyRegisterationDate(pageNumber, pageSize, appFilter, out totalRecords); if (eventCustomers.IsNullOrEmpty()) { return(null); } var appointments = _appointmentRepository.GetByIds(eventCustomers.Where(ec => ec.AppointmentId.HasValue).Select(ec => ec.AppointmentId.Value).ToList()); var eventIds = eventCustomers.Select(ec => ec.EventId).Distinct().ToArray(); var model = _eventReportingService.GetEventVolumeModel(eventCustomers.Select(ec => ec.EventId).Distinct().ToArray()); var customers = _customerRepository.GetCustomers(eventCustomers.Select(ec => ec.CustomerId).Distinct().ToArray()); var customerIds = customers.Select(x => x.CustomerId); var orders = _orderRepository.GetAllOrdersByEventCustomerIds(eventCustomers.Select(ec => ec.Id).ToArray(), true); var customerEligibilities = _customerEligibilityRepository.GetCustomerEligibilityByCustomerIdsAndYear(customerIds, DateTime.Today.Year); if (customerEligibilities.IsNullOrEmpty()) { customerEligibilities = new List <CustomerEligibility>(); } var eventPackages = _eventPackageRepository.GetbyEventIds(eventIds); var eventTests = _eventTestRepository.GetByEventIds(eventIds); var sourceCodes = _sourceCodeRepository.GetSourceCodeByIds(orders.SelectMany(o => o.OrderDetails.Where(od => od.SourceCodeOrderDetail != null && od.SourceCodeOrderDetail.IsActive) .Select(od => od.SourceCodeOrderDetail.SourceCodeId)).Distinct().ToArray()); var orgRoleUserIds = eventCustomers.Where(ec => ec.DataRecorderMetaData != null && ec.DataRecorderMetaData.DataRecorderCreator != null).Select(ec => ec.DataRecorderMetaData.DataRecorderCreator.Id).ToList(); var eventAppointmentChangeLogs = _eventAppointmentChangeLogRepository.GetByEventCustomerIds(eventCustomers.Select(ec => ec.Id).ToArray()).ToArray(); orgRoleUserIds.AddRange(eventAppointmentChangeLogs.Select(eacl => eacl.CreatedByOrgRoleUserId)); var registeredbyAgent = _organizationRoleUserRepository.GetOrganizationRoleUsers(orgRoleUserIds); var roles = _roleRepository.GetAll(); var registeredbyAgentNameIdPair = _organizationRoleUserRepository.GetNameIdPairofUsers(orgRoleUserIds.ToArray()).ToArray(); var callDetails = _callCenterCallRepository.GetCallDetails(customers); var shippingDetailIds = orders.SelectMany(o => o.OrderDetails.SelectMany(od => od.ShippingDetailOrderDetails.Select(sdod => sdod.ShippingDetailId))).ToArray(); var shippingDetails = _shippingDetailRepository.GetByIds(shippingDetailIds); var cdShippingOption = _shippingOptionRepository.GetShippingOptionByProductId((long)Product.UltraSoundImages); var shippingOptions = _shippingOptionRepository.GetAllShippingOptions(); var customTags = _customTagRepository.GetByCustomerIds(customerIds); var tagNames = customers.Where(x => !string.IsNullOrEmpty(x.Tag)).Select(x => x.Tag).ToArray(); var corporateAccount = _corporateAccountRepository.GetByTags(tagNames); var corporateAccountIds = corporateAccount.Select(x => x.Id).ToArray(); var accountAdditionalField = _accountAdditionalFieldRepository.GetAccountAdditionalFieldsByAccountIds(corporateAccountIds); var primaryCarePhysicians = _primaryCarePhysicianRepository.GetByCustomerIds(eventCustomers.Select(ec => ec.CustomerId).Distinct().ToArray()); var languages = _languageRepository.GetAll(); var pcpAppointments = _pcpAppointmentRepository.GetByEventCustomerIds(eventCustomers.Select(ec => ec.Id).ToArray()); return(_customAppointmentsBookedModelFactory.CreateHourlyModel(eventCustomers, appointments, orders, model, customers, registeredbyAgent, roles, registeredbyAgentNameIdPair, sourceCodes, callDetails, shippingDetails, cdShippingOption, shippingOptions, eventAppointmentChangeLogs, primaryCarePhysicians, eventPackages, eventTests, languages, customTags, corporateAccount, accountAdditionalField, pcpAppointments, customerEligibilities)); }