public async Task <IEnumerable <Department> > Get(DepartmentGetOptions options) { var departments = await _dao.Get(options); var departmentsIds = departments.Select(o => o.Id).ToList(); var departmentDisciplinesTitles = await _discplineTitleService.Get(new DisciplineTitleGetOptions { DepartmentIds = departmentsIds }); var departmentsUsers = await _userRoleInDepartmentService.Get(new UserRoleInDepartmentGetOptions { DepartmentIds = departmentsIds }); var departmentsRoles = await _roleInDepartmentService.Get(new RoleInDepartmentGetOptions { DepartmentIds = departmentsIds }); var departmentsStudyDirections = await _studyDirectionService.Get(new StudyDirectionGetOptions { DepartmentIds = departmentsIds }); var departmentsGroups = await _studentGroupService.Get(new StudentGroupGetOptions { DepartmentIds = departmentsIds }); foreach (var group in departmentsGroups) { group.StudyDirection = departmentsStudyDirections.FirstOrDefault(o => o.Id == group.StudyDirectionId); } foreach (var department in departments) { department.Titles = departmentDisciplinesTitles.Where(o => o.DepartmentId == department.Id).ToList(); department.Users = departmentsUsers.Where(o => o.DepartmentId == department.Id).ToList(); department.Roles = departmentsRoles.Where(o => o.DepartmentId == department.Id).ToList(); department.StudyDirections = departmentsStudyDirections.Where(o => o.DepartmentId == department.Id).ToList(); department.Groups = departmentsGroups.Where(o => department.StudyDirections.Any(sd => sd.Id == o.StudyDirectionId)).ToList(); } return(departments); }
public async Task <IEnumerable <Role> > Get(RoleGetOptions options) { var roles = await _dao.Get(options); var rolesDepartments = await _roleInDepartmentService.Get(new RoleInDepartmentGetOptions { RoleIds = roles.Select(o => o.Id).ToList() }); foreach (var role in roles) { role.RoleDepartments = rolesDepartments.Where(o => o.RoleId == role.Id).ToList(); } return(roles); }