public EventMetricsViewData GetEventMetricsViewData(long eventId, long orgRoleUserId) { // TODO: This method really needs refactoring, // TODO: probably every different part of the view data needs to be handled in different factory. // TODO: Will revisit this after shopping cart is complete. var orders = _orderRepository.GetAllOrdersForEvent(eventId); var eventPackages = _eventPackageRepository.GetPackagesForEvent(eventId); var eventTests = _eventTestRepository.GetTestsForEvent(eventId); var eventCustomers = _eventCustomerRepository.GetEventCustomersbyEventId(eventId); IOrganizationRoleUserRepository organizationRoleUserRepository = new OrganizationRoleUserRepository(); var organizationRoleUser = organizationRoleUserRepository.GetOrganizationRoleUser(orgRoleUserId); var eventMetricsViewData = _revenueStatisticsViewDataFactory.CreateEventMetricsViewData(orders, eventPackages, eventTests, organizationRoleUser, eventCustomers); eventMetricsViewData = _eventCustomerRepository.GetEventCustomerFlagMetrics(eventMetricsViewData, eventId); return(eventMetricsViewData); }