public List <EmployeeDTO> getEmployees() { var employees = new List <EmployeeDTO>(); var data = new DataAccessFacade().executeRequest(1, ConfigurationManager.AppSettings["Method"], new List <Parameter>(), ConfigurationManager.AppSettings["ApiUrl"]); var roleAdapter = AdapterCreator.getInstance().getFactory("Role"); Adapter employeeAdapter; for (var i = 0; i < data.Count(); i++) { var role = (RoleDTO)roleAdapter.create(data, i); if (data.getDato(i).getStringField("contractTypeName") == "HourlySalaryEmployee") { employeeAdapter = AdapterCreator.getInstance().getFactory("HourlyEmployee"); } else { employeeAdapter = AdapterCreator.getInstance().getFactory("MonthlyEmployee"); } var employee = (EmployeeDTO)employeeAdapter.create(data, i); employee.role = role; employees.Add(employee); } return(employees); }