public ListModelBase <MemberResultMailedReportViewModel, MemberResultMailedReportFilter> GetMemberResultMailedReport(int pageNumber, int pageSize, ModelFilterBase filter, out int totalRecords) { var memberFilter = filter as MemberResultMailedReportFilter; var pcpResultMailedFilter = new PcpResultMailedReportModelFilter { CustomTags = memberFilter.CustomTags, ExcludeCustomerWithCustomTag = memberFilter.ExcludeCustomerWithCustomTag, DateTo = memberFilter.DateTo, DateFrom = memberFilter.DateFrom, HealthPlanId = memberFilter.HealthPlanId, Tag = memberFilter.Tag }; var shippingDetails = _shippingDetailRepository.GetEventCustomerShippingDetailForFilter(pageNumber, pageSize, pcpResultMailedFilter, memberFilter.ShippingOptions, out totalRecords); if (shippingDetails.IsNullOrEmpty()) { return(null); } var shippingDetailIdEventCustomerIdPairs = _shippingDetailRepository.GetShippingDetailIdEventCustomerIdPairs(shippingDetails.Select(sd => sd.Id).ToArray()); var addresses = _addressRepository.GetAddresses(shippingDetails.Select(sd => sd.ShippingAddress.Id).ToList()); var eventCustomers = _eventCustomerRepository.GetByIds(shippingDetailIdEventCustomerIdPairs.Select(sdec => sdec.SecondValue).ToArray()); var customers = _customerRepository.GetCustomers(eventCustomers.Select(ec => ec.CustomerId).ToArray()); return(_memberResultMailedReportFactory.Create(shippingDetails, shippingDetailIdEventCustomerIdPairs, eventCustomers, customers, addresses)); }
public IEnumerable <EventCustomerShippingDetailViewData> GetEventCustomerShippingDetailViewData(int pageNumber, int pageSize, EventCustomerShippingDetailViewDataFilter filter) { int totalRecords = 0; var shippingDetails = _shippingDetailRepository.GetEventCustomerShippingDetailForFilter(pageNumber, pageSize, filter, out totalRecords); if (shippingDetails.IsNullOrEmpty()) { return(null); } var shippingDetailIdEventCustomerIdPairs = _shippingDetailRepository.GetShippingDetailIdEventCustomerIdPairs(shippingDetails.Select(sd => sd.Id).ToArray()); var eventCustomers = _eventCustomerRepository.GetByIds(shippingDetailIdEventCustomerIdPairs.Select(sdec => sdec.SecondValue).ToArray()); var eventCustomerIds = eventCustomers.Select(ec => ec.Id).ToArray(); var eventIds = eventCustomers.Select(ec => ec.EventId).ToArray(); var customers = _customerRepository.GetCustomers(eventCustomers.Select(ec => ec.CustomerId).ToArray()); var events = _eventRepository.GetEventswithPodbyIds(eventIds); var eventCustomerResults = _eventCustomerResultRepository.GetByIds(eventCustomerIds); var orders = _orderRepository.GetAllOrdersByEventCustomerIds(eventCustomerIds, true); var orderPackageIdNamePairs = _eventPackageRepository.GetPackageNamesForOrder(orders.Select(o => o.Id).ToList()); var orderTestIdNamePairs = _eventTestRepository.GetTestNamesForOrders(orders.Select(o => o.Id).ToList()); var addresses = _addressRepository.GetAddresses(shippingDetails.Select(sd => sd.ShippingAddress.Id).ToList()); var shippingOptions = _shippingOptionRepository.GetByIds(shippingDetails.Select(sd => sd.ShippingOption.Id).Distinct().ToArray()); var orderIdProductNamePairs = _productRepository.GetProductNamesForOrder(orders.Select(o => o.Id).ToArray()); return(_eventCustomerShippingDetailViewDataFactory.Create(shippingDetails, shippingDetailIdEventCustomerIdPairs, eventCustomers, customers, events, eventCustomerResults, orders, orderPackageIdNamePairs, orderTestIdNamePairs, addresses, shippingOptions, totalRecords, orderIdProductNamePairs)); }
public ListModelBase <PcpSummaryLogReportModel, PcpSummaryLogReportModelFilter> GetPcpSummaryLogReport(int pageNumber, int pageSize, ModelFilterBase filter, out int totalRecords) { var shippingOption = _shippingOptionRepository.GetShippingOptionByProductId((long)Product.UltraSoundImages, true); var shippingDetails = _shippingDetailRepository.GetEventCustomerShippingDetailForFilter(pageNumber, pageSize, filter as PcpSummaryLogReportModelFilter, new[] { shippingOption.Id }, out totalRecords); if (shippingDetails.IsNullOrEmpty()) { return(null); } var shippingDetailIdEventCustomerIdPairs = _shippingDetailRepository.GetShippingDetailIdEventCustomerIdPairs(shippingDetails.Select(sd => sd.Id).ToArray()); var eventCustomers = _eventCustomerRepository.GetByIds(shippingDetailIdEventCustomerIdPairs.Select(sdec => sdec.SecondValue).ToArray()); var customerIds = eventCustomers.Select(ec => ec.CustomerId).Distinct().ToArray(); var customers = _customerRepository.GetCustomers(customerIds); var primaryCarePhysicians = _primaryCarePhysicianRepository.GetByCustomerIds(customerIds); var eventids = eventCustomers.Select(e => e.EventId).Distinct().ToArray(); var eventCollection = ((IUniqueItemRepository <Event>)_eventRepository).GetByIds(eventids); return(_pcpSummaryLogReportListModelFactory.Create(shippingDetails, shippingDetailIdEventCustomerIdPairs, eventCustomers, customers, primaryCarePhysicians, eventCollection)); }