public IEnumerable <EmployeeListViewModel> CreateEmployeeListViewModel() { var employeeListViewModel = new List <EmployeeListViewModel>(); var employees = _employeesService.GetEmployees(); var managers = _managerService.GetManagers(); var employeesWorkedYears = _yearsWorkedEmployeesService.GetYearsWorkedEmployees(); foreach (var employee in employees) { var manager = _managerService.GetManagerByEmployeeId(employee); var satisfactionAverage = _satisfactionScoresService.GetSatisfactionAverageOfPastThreeYears(employee); var employeeYearsSatisfactionScores = _yearsWorkedEmployeesService.GetEmployeeYearsSatisfacions(employee.EmployeeId); var employeeLastYearSatisfaction = _employeesService.GetEmmployeeLastYearSatisfaction(employeeYearsSatisfactionScores); var salaryAfterComputation = _employeeSalaryCalculation.GetCalculatedEmployeeSalary(new EmployeeCalculationViewModel() { CurrentSalary = employee.CurrentSalary, LastYearSatisfactionScore = employeeLastYearSatisfaction.SatisfactionScore, SatisfactionAverage = satisfactionAverage }); employeeListViewModel.Add(new EmployeeListViewModel() { CurrentSalary = employee.CurrentSalary, EmployeeManager = manager.ManagerName, EmployeeName = employee.EmployeeName, Position = employee.Position, SatisfactionAverage = satisfactionAverage, SalaryAfterCalculation = salaryAfterComputation, YearsSatisfactionScores = employeeYearsSatisfactionScores, EmployeeMaxYearViewModel = employeeLastYearSatisfaction }); } return(employeeListViewModel); }