public ActionResult TestNotPerformed(TestNotPerformedListModelFilter filter = null, int pageNumber = 1) { int totalRecords = 0; if (filter == null) { filter = new TestNotPerformedListModelFilter { EventDateFrom = DateTime.Now.AddMonths(-1).Date, EventDateTo = DateTime.Now.Date } } ; var model = _testNotPerformedService.GetTestNotPerformed(pageNumber, _pageSize, filter, out totalRecords); if (model == null) { model = new TestNotPerformedListModel(); } filter.EventDateFrom = filter.EventDateFrom.HasValue ? filter.EventDateFrom.Value : DateTime.Now.AddMonths(-1).Date; filter.EventDateTo = filter.EventDateTo.HasValue ? filter.EventDateTo.Value : DateTime.Now; model.Filter = filter; var currentAction = ControllerContext.RouteData.Values["action"].ToString(); Func <int, string> urlFunc = pn => Url.Action(currentAction, new { pageNumber = pn, filter.EventDateFrom, filter.EventDateTo, filter.HealthPlanId, filter.EventId, filter.Pod, filter.TestId }); model.PagingModel = new PagingModel(pageNumber, _pageSize, totalRecords, urlFunc); return(View(model)); }
public TestNotPerformedListModel Create(IEnumerable <TestNotPerformed> testNotPerformedLists, IEnumerable <CustomerEventScreeningTests> customerEventScreeningTests, IEnumerable <EventCustomerResult> eventCustomerResults, IEnumerable <Event> events, IEnumerable <Customer> customers, IEnumerable <Test> tests, IEnumerable <OrderedPair <long, long> > customersPreApprovedTestIds, IEnumerable <CorporateAccount> accounts, IEnumerable <Pod> pods, IEnumerable <CustomerEventTestState> customerEventTestStates, IEnumerable <OrderedPair <long, string> > idNamePairs, IEnumerable <OrderedPair <long, long> > staffOrgRoleUserEventsPair, IEnumerable <OrderedPair <long, string> > staffNamePairs, IEnumerable <Host> eventHosts, IEnumerable <EventCustomer> eventCustomers) { var listModel = new TestNotPerformedListModel(); var collection = new List <TestNotPerformedViewModel>(); foreach (var testNotPerformed in testNotPerformedLists) { var customerEventScreeningTest = customerEventScreeningTests.Single(ces => ces.Id == testNotPerformed.CustomerEventScreeningTestId); var eventCustomerResult = eventCustomerResults.First(ecr => ecr.Id == customerEventScreeningTest.EventCustomerResultId); var eventCustomer = eventCustomers.First(ec => ec.Id == customerEventScreeningTest.EventCustomerResultId); var theEvent = events.First(e => e.Id == eventCustomerResult.EventId); var customer = customers.First(c => c.CustomerId == eventCustomerResult.CustomerId); var test = tests.First(t => t.Id == customerEventScreeningTest.TestId); var host = eventHosts.First(x => x.Id == theEvent.HostId); var customerEventTestState = customerEventTestStates.Single(x => x.CustomerEventScreeningTestId == testNotPerformed.CustomerEventScreeningTestId); var customerTestIds = customersPreApprovedTestIds.Any(x => x.FirstValue == eventCustomerResult.Id && x.SecondValue == test.Id); var podNames = (theEvent.PodIds != null && theEvent.PodIds.Count() > 0) ? string.Join(", ", pods.Where(p => theEvent.PodIds.Contains(p.Id)).Select(p => p.Name)) : string.Empty; var conductedByPair = idNamePairs.Single(x => x.FirstValue == customerEventTestState.ConductedByOrgRoleUserId.Value); var conductedBy = string.Empty; if (conductedByPair != null) { conductedBy = conductedByPair.SecondValue; } var organizationName = string.Empty; //if (!string.IsNullOrEmpty(customer.Tag) && (accounts != null && accounts.Any())) if (theEvent.AccountId.HasValue && theEvent.AccountId > 0 && (accounts != null && accounts.Any())) { //var account = accounts.SingleOrDefault(x => x.Tag == customer.Tag); var account = accounts.SingleOrDefault(x => x.Id == theEvent.AccountId); if (account != null) { organizationName = account.Name; } } var providers = string.Empty; if (staffOrgRoleUserEventsPair != null && staffOrgRoleUserEventsPair.Any()) { var staffOrgRoleUserEventPair = staffOrgRoleUserEventsPair.Where(x => x.SecondValue == theEvent.Id).ToArray(); if (staffOrgRoleUserEventPair != null && staffOrgRoleUserEventPair.Any()) { var orgIds = staffOrgRoleUserEventPair.Select(x => x.FirstValue); var assignedNPs = staffNamePairs.Where(x => orgIds.Contains(x.FirstValue)).ToArray(); if (assignedNPs != null && assignedNPs.Any()) { providers = string.Join(", ", assignedNPs.Select(x => x.SecondValue)); } } } var model = new TestNotPerformedViewModel { CustomerId = customer.CustomerId, EventId = theEvent.Id, EventDate = theEvent.EventDate, CustomerName = customer.Name.FullName, MemberId = customer.InsuranceId, Notes = string.IsNullOrEmpty(testNotPerformed.Notes) ? "N/A" : testNotPerformed.Notes, Reason = ((TestNotPerformedReasonType)testNotPerformed.TestNotPerformedReasonId).GetDescription(), TestName = test.Name, HealthPlan = organizationName, IsPreApprovedTest = customerTestIds ? "Yes" : "No", EventName = theEvent.Name, PodName = podNames, TechnicianName = conductedBy, ProviderName = providers, State = host.Address.State, IsOverride = eventCustomer.SingleTestOverride ? "Yes" : "No" }; collection.Add(model); } listModel.Collection = collection; return(listModel); }