private CustomerInfo GetCustomerInfo(CrosswalkInboundViewModel crosswalkViewModel) { return(new CustomerInfo { CustomerId = crosswalkViewModel.CustomerId, EventId = crosswalkViewModel.EventId, DateSent = DateTime.Now, EventDate = crosswalkViewModel.ServiceStartDate, FileName = crosswalkViewModel.FileName, FileType = (long)ResultFormatType.PDF, MemberId = string.IsNullOrEmpty(crosswalkViewModel.ClientId) ? string.Empty : crosswalkViewModel.ClientId }); }
public List <CrosswalkInboundViewModel> Create(IEnumerable <Customer> customers, IEnumerable <ChaseOutbound> chaseOutbounds, IEnumerable <CustomerChaseCampaign> customerChaseCampaigns, IEnumerable <ChaseCampaign> chaseCampaigns, IEnumerable <Relationship> relationships, IEnumerable <EventCustomer> eventCustomers, IEnumerable <EventCustomerResult> eventCustomerResults, IEnumerable <Event> events, CorporateAccount corporateAccount, IEnumerable <CustomerEventScreeningTests> customerEventScreeningTests, IEnumerable <OrderedPair <long, long> > customerEventScreeningTestIdFileIdPairs) { var collection = new List <CrosswalkInboundViewModel>(); ResultPdfPostedXml resultPosted = null; if (!customers.IsNullOrEmpty()) { var resultPostedToPlanFileName = Path.Combine(_settings.ResultPostedToPlanPath, string.Format("ResultPostedto_{0}.xml", corporateAccount.Tag)); resultPosted = _resultPdfPostedSerializer.Deserialize(resultPostedToPlanFileName); resultPosted = resultPosted == null || resultPosted.Customer.IsNullOrEmpty() ? new ResultPdfPostedXml { Customer = new List <CustomerInfo>() } : resultPosted; } foreach (var eventCustomerResult in eventCustomerResults) { var customer = customers.FirstOrDefault(x => x.CustomerId == eventCustomerResult.CustomerId); if (customer == null) { continue; } var theEvent = events.FirstOrDefault(x => x.Id == eventCustomerResult.EventId); if (theEvent == null) { continue; } var chaseOutbound = chaseOutbounds.FirstOrDefault(x => x.CustomerId == customer.CustomerId); if (chaseOutbound == null) { continue; } var customerChaseCampaign = !customerChaseCampaigns.IsNullOrEmpty() ? customerChaseCampaigns.FirstOrDefault(x => x.CustomerId == customer.CustomerId) : null; var campaign = !chaseCampaigns.IsNullOrEmpty() && customerChaseCampaign != null?chaseCampaigns.FirstOrDefault(x => x.Id == customerChaseCampaign.ChaseCampaignId) : null; var relationship = !relationships.IsNullOrEmpty() && chaseOutbound.RelationshipId.HasValue ? relationships.FirstOrDefault(x => x.Id == chaseOutbound.RelationshipId.Value) : null; var eventCustomer = eventCustomers.First(x => x.CustomerId == customer.CustomerId); var postedPdf = resultPosted.Customer.FirstOrDefault(x => x.CustomerId == eventCustomerResult.CustomerId && x.EventId == eventCustomerResult.EventId); /*if (postedPdf != null) * { * var eventScreeningTests = customerEventScreeningTests.Where(x => x.EventCustomerResultId == eventCustomerResult.Id); * if (eventScreeningTests.Any()) * { * if (customerEventScreeningTestIdFileIdPairs.Any(x => eventScreeningTests.Select(est => est.Id).Contains(x.FirstValue))) * continue; * } * }*/ var crosswalkInboundViewModel = new CrosswalkInboundViewModel { TenantId = chaseOutbound.TenantId, ClientId = chaseOutbound.ClientId, CampaignId = campaign != null ? campaign.CampaignId : "", IndividualIDNumber = chaseOutbound.IndividualId, ContractNumber = chaseOutbound.ContractNumber, ContractPersonNumber = chaseOutbound.ContractPersonNumber, ConsumerId = chaseOutbound.ConsumerId, ExtractDate = DateTime.Now, RelationshipCode = relationship != null ? "\"" + relationship.Code + "\"" : "", LastName = customer.Name.LastName, FirstName = customer.Name.FirstName, BirthDate = customer.DateOfBirth, FileName = GetResultPdfFileName(chaseOutbound, customer, eventCustomerResult, corporateAccount), ServiceStartDate = theEvent.EventDate, ServiceEndDate = theEvent.EventDate, EventId = eventCustomer.EventId, CustomerId = eventCustomer.CustomerId, ClientProviderID = "NURSE", ProjectTypeName = "Wkly Mbr", Npi = "Dr. Pham", DocumentID = customer.CustomerId.ToString() }; collection.Add(crosswalkInboundViewModel); } return(collection); }