public async Task <StudentCourseTimeSimpleDto> Simple(StudentCourseTimeQueryInput input) { //检查传入参数 if (!input.Id.HasValue) { throw new UserFriendlyException("传入Id参数不正确!"); } var result = await _studentCourseTimeRepository.FirstOrDefaultAsync(x => x.Id == input.Id.Value); if (result == null) { throw new UserFriendlyException("该条信息不存在!"); } return(result.MapTo <StudentCourseTimeSimpleDto>()); }
public async Task <PagedResultDto <StudentCourseTimeDto> > Query(StudentCourseTimeQueryInput input) { //验证参数 if (!input.PageSize.HasValue) { throw new UserFriendlyException("传入PageSize参数不正确!"); } if (!input.Start.HasValue) { throw new UserFriendlyException("传入Start参数不正确!"); } //获取查询对象 var query = _studentCourseTimeRepository.GetAll().Where( x => !x.Student.IsDeleted && !x.CourseTime.TeacherCourse.IsDeleted && !x.CourseTime.TeacherCourse.Course.IsDeleted && !x.CourseTime.TeacherCourse.Course.SubjectProject.IsDeleted); //添加课程编号条件 if (input.CourseId.HasValue) { query = query.Where(x => x.CourseTime.TeacherCourse.CourseId == input.CourseId.Value); } //添加所属上课时间条件 if (input.CourseTimeId.HasValue) { query = query.Where(x => x.CourseTimeId == input.CourseTimeId); } //添加学生所选项目编号条件 if (input.StudentSubjectProjectId.HasValue) { var studentSubjectProject = await _studentSubjectProjectRepository.FirstOrDefaultAsync(x => x.Id == input.StudentSubjectProjectId.Value); if (studentSubjectProject == null) { throw new UserFriendlyException("学生所选项目不存在。"); } query = query.Where(x => x.StudentId == studentSubjectProject.StudentId && x.CourseTime.TeacherCourse.Course.SubjectProjectId == studentSubjectProject.CourseId); } //添加关键词条件 if (!string.IsNullOrEmpty(input.KeyWord)) { query = query.Where(x => x.Student.Name.Contains(input.KeyWord) || x.Student.UserName.Contains(input.KeyWord) || x.CourseTime.TeacherCourse.Course.Name.Contains(input.KeyWord) || x.CourseTime.TeacherCourse.Course.SubjectProject.Name.Contains(input.KeyWord) ); } //获取总数 var totalcount = await Task.FromResult(query.Count()); //添加分页条件 if (input.PageSize.Value > 0) { query = query.OrderBy(x => x.CourseTime.Start) .ThenBy(x => x.CreationTime) .Skip(input.Start.Value).Take(input.PageSize.Value); } //执行查询 var courses = await Task.FromResult(query.ToList()); //包装为分页输出对象 return(new PagedResultOutput <StudentCourseTimeDto>(totalcount, courses.MapTo <List <StudentCourseTimeDto> >())); }