public async Task <Result <ListResultDto <StudyGroupItemDto> > > GetStudyGroups(GetStudyGroupsInput input)
        {
            var query = _studyGroupRepository.GetAllIncluding(
                studyGroup => studyGroup.StudyGroupAcademicSubjects,
                studyGroup => studyGroup.TeacherStudyGroups);
            var studyGroups = await query.ToListAsync();

            if (input.AcademicSubjectId.HasValue ||
                input.TeacherId.HasValue)
            {
                studyGroups = studyGroups.
                              Where(studyGroup => studyGroup.StudyGroupAcademicSubjects.Any(
                                        prop => prop.AcademicSubjectId == input.AcademicSubjectId) ||
                                    studyGroup.TeacherStudyGroups.Any(
                                        prop => prop.TeacherId == input.TeacherId)).ToList();
            }
            var studyGroupDtos = new List <StudyGroupItemDto>();

            foreach (var studyGroup in studyGroups)
            {
                var studyGroupDto = await MapEntityToEntityDto(studyGroup);

                studyGroupDtos.Add(studyGroupDto);
            }
            return(Result <ListResultDto <StudyGroupItemDto> > .
                   Success(new ListResultDto <StudyGroupItemDto>(studyGroupDtos)));
        }
Пример #2
0
 public GetStudyGroupsViewModel()
 {
     Input = new GetStudyGroupsInput();
     Value = new ListResultDto <StudyGroupItemDto>();
 }