Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }