public async Task <PagedResultOutput <GetSelectSubjectProjectsListDto> > GetSelectSubjectProjects(GetSubjectProjectsInput input) { var semester = await _semesterRepository.GetCurrentSemester(); var totalcout = await _subjectRepository.CountAsync(x => x.Semester.Id == semester.Id && !x.IsDeleted); var query = _subjectRepository.GetAll(); if (!string.IsNullOrEmpty(input.KeyWord)) { query = query.Where(x => x.Name.Contains(input.KeyWord) || x.SubjectStyle.Contains(input.KeyWord)); } query = query.Where(x => x.Semester.Id == semester.Id) .OrderByDescending(x => x.IsCompulsory) .ThenBy(x => x.CreationTime) .Skip(input.Start).Take(input.PageSize); var subjects = (await Task.FromResult(query.ToList())).MapTo <List <GetSelectSubjectProjectsListDto> >(); var studentSelectedSubjects = await _studentSubjectRepository.GetAllListAsync( x => x.SubjectProject.Semester.Id == semester.Id && x.StudentId == (AbpSession.UserId ?? 0)); var ids = studentSelectedSubjects.Select(x => x.CourseId).ToList(); foreach (var subject in subjects.Where(subject => ids.Contains(subject.Id))) { subject.IsSelected = true; } return(new PagedResultOutput <GetSelectSubjectProjectsListDto>(totalcout, subjects)); }
//public async Task<ListResultOutput<SubjectProjectsListDto>> GetSubjectProjects(GetSubjectProjectsInput input) public async Task <PagedResultOutput <SubjectProjectsListDto> > GetSubjectProjects(GetSubjectProjectsInput input) //1 { var totalcount = await _subjectRepository.CountAsync(x => !x.IsDeleted); //1 var query = _subjectRepository.GetAll(); if (!string.IsNullOrEmpty(input.KeyWord)) { query = query.Where(x => x.Name.Contains(input.KeyWord) || x.SubjectStyle.Contains(input.KeyWord)); } query = query.OrderByDescending(x => x.IsCompulsory) .ThenBy(x => x.CreationTime) //.Take(input.PageSize).Skip(input.Start); .Skip(input.Start).Take(input.PageSize); //1 var subjects = await Task.FromResult(query.ToList()); //return new ListResultOutput<SubjectProjectsListDto>( // subjects.MapTo<List<SubjectProjectsListDto>>() return(new PagedResultOutput <SubjectProjectsListDto>(totalcount, //1 subjects.MapTo <List <SubjectProjectsListDto> >() //1 )); }