コード例 #1
0
        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));
        }
コード例 #2
0
        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);
        }