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> >()));
        }