public ActionResult Index() { var customers = customerRepo.GetAllActive(); var projectMembers = projectMemberRepository.GetAllActive(); var projects = projectRepository.GetAllActive(); var employees = employeeRepository.GetAllActive(); var viewmodel = assembler.AssembleCustomerOverviews(customers, projects, projectMembers, employees); return(View(viewmodel)); }
private List <EmployeeOverview> GetOverviewForEmployees(IEnumerable <Employee> employees) { var projects = _projectRepo.GetAllActive(); var projectMemberships = _projectMemberRepo.GetAllActive(); var list = new List <EmployeeOverview>(); foreach (var employee in employees.OrderBy(e => e.FullName)) { var eo = new EmployeeOverview { Employee = employee, ProjectMemberships = new Dictionary <ProjectMember, Project>() }; list.Add(eo); foreach (var memberships in projectMemberships.Where(pm => pm.EmployeeId == employee.Id)) { var project = projects.FirstOrDefault(p => p.Id == memberships.ProjectId); if (project == null) { continue; //inactive } eo.ProjectMemberships[memberships] = project; } } return(list); }